Как программно открыть консоль JavaScript браузера?

Как открыть консоль JavaScript браузера с кодом JavaScript?

if (ShowConsole() == false)
   alert('I cannot open your JavaScript console, please "
   + "use your browser\'s menu to open manually.')
else console.log('now you can see some message')

Я предполагаю, что функция ShowConsole() не существует и является продуктом моего воображения, вам нужно зайти в меню, найти нужный элемент и щелкнуть по нему. И сделать это по-разному в другом браузере. Я ищу API для конкретного браузера, чтобы помочь ленивым разработчикам.

Под «открыть» я подразумеваю сделать его видимым, как если бы пользователь выбрал соответствующую команду меню.


person exebook    schedule 25.02.2014    source источник
comment
плод моего воображения хорошая мысль   -  person Deepak Ingole    schedule 25.02.2014
comment
Возможно, вас заинтересует stackoverflow.com /вопросы/7798748/   -  person Deepak Ingole    schedule 25.02.2014
comment
К сожалению, я не думаю, что можно программно открыть devtools в обычном браузере. Если вы создаете приложение для Electron, вы можете использовать toggleDevtools.   -  person Brady Dowling    schedule 29.04.2019
comment
Вы не можете и не должны, если пользователю нужно что-то увидеть, используйте alert(), иначе запишите это в файл. Инструменты разработки предназначены для отладки, а не для взаимодействия с конечным пользователем.   -  person Sam Stephenson    schedule 12.06.2019


Ответы (1)


Я не могу найти способ сделать это, поэтому у меня сложилось впечатление, что это явно разработано как мера безопасности. В конце концов, просто попробуйте зайти на Facebook.com и открыть консоль. Что ты видишь?

СТОП!

Это функция браузера, предназначенная для разработчиков. Если кто-то сказал вам скопировать и вставить что-то сюда, чтобы включить функцию Facebook или взломать чей-то аккаунт, это мошенничество, и он даст им доступ к вашей учетной записи Facebook.

Если это угроза безопасности, зачем давать любому разработчику возможность открывать любое окно безопасности для любого пользователя?

Теоретически, если бы это не было проблемой, все, что вам нужно было бы сделать, это: <a href="chrome://inspect">Inspect!</a>. А в Chrome даже есть режим инициализации с параметром --allow-file-access-from-files, чтобы дать разработчику больше свободы. . Для меня эта работа имеет смысл — если кто-то запустил chrome.exe с флагом, указывающим инструменты разработчика в командной строке, совершенно очевидно, что это не какой-то пользователь, которого обманом заставили открыть свою консоль, поэтому он должен дать нам больше разрешений.

К сожалению, абсолютно все, что я пробовал, терпит неудачу, и это создает у меня впечатление, что это хардкорный протокол безопасности для Google, и они не будут работать в ближайшее время. Результаты, если быть точными...

  • <a href="chrome://inspect">Inspect!</a> : Результаты консоли с ошибкой...

Не разрешено загружать локальный ресурс: имя файла...

  • <a href="file://chrome://inspect">File!</a>: перенаправляет на about:blank#blocked.

  • C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --allow-file-access-from-files : Похоже, это не имело никакого эффекта.

Единственная реальная оставшаяся возможность: плагин Chrome, который разрешает href="chrome://..." ссылок. Я искал и пробовал несколько, но ни один из них не дал желаемых результатов. Но возможность есть! Вы сказали, что это должно помочь ленивым разработчикам — это то, что нужно, чтобы правильно приспособиться к лени.

person HoldOffHunger    schedule 14.09.2020