Что я могу делать с помощью консоли браузера Firefox, чего не могу сделать с помощью веб-консоли?

Недавно я узнал, что Firefox имеет консоль браузера (отличную от веб-консоли), которую можно включить, установив для devtools.chrome.enabled значение true .

Я искал информацию о том, что я могу с ним делать, но нашел только

Консоль браузера позволяет вам видеть весь JavaScript ошибки и логирование в браузере, в том числе из кода Firefox. Чтобы включить его, перейдите к about: config в строке URL и установите devtools.chrome.enabled на true. Активируйте его через меню Web Developer> Browser Console.

(https://developer.mozilla.org/en-US/docs/Debugging_JavaScript#Browser_Console)

Я обнаружил, что консоль браузера полезна, потому что я вижу ошибки в изолированных скриптах GreaseMonkey. Но я думаю, он может делать много интересных вещей, где я могу найти информацию?


На этой странице MDN сказано все (когда я задал этот вопрос, эта страница не существовала , он был создан 7 августа 2013 г., 17:04:27)

Консоль браузера похожа на веб-консоль, но применяется ко всему браузеру, а не к отдельному контенту tab.

Таким образом, он регистрирует те же виды информации, что и веб-консоль — сетевые запросы, JavaScript, CSS, ошибки и предупреждения безопасности, а также сообщения, явно регистрируемые кодом JavaScript. Однако вместо того, чтобы регистрировать эту информацию для одной вкладки контента, она регистрирует информацию для всех вкладок контента, для надстроек и для собственного кода браузера.

Аналогичным образом вы можете выполнять выражения JavaScript, используя Консоль браузера. Но пока веб-консоль выполняет код в области окна страницы, консоль браузера выполняет их в области Chrome окна браузера. Это означает, что вы можете взаимодействовать со всеми вкладками браузера, используя глобал gBrowser , и даже с XUL, используемым для указания пользовательского интерфейса браузера.

Чтобы открыть браузер. Консоль, выберите «Консоль браузера» в подменю веб-разработчика в меню Firefox (или в меню «Инструменты», если вы отображаете строку меню или работаете в Mac OS X):

Вы можете видеть, что консоль браузера выглядит и ведет себя очень похоже на веб-консоль:

  • большую часть окна занимает панель, отображающая сообщения
  • вверху, панель инструментов позволяет вам фильтровать сообщения, которые появляются
  • в внизу, интерпретатор командной строки позволяет вам оценивать выражения JavaScript.

Ведение журнала консоли браузера

Консоль браузера регистрирует те же виды сообщений, что и Интернет. Консоль:

  • HTTP-запросы
  • Предупреждения и ошибки (включая JavaScript, CSS, предупреждения и ошибки системы безопасности и сообщения, явно регистрируемые кодом JavaScript с использованием консольного API)
  • Сообщения ввода/вывода: команды, отправляемые в браузер через командную строку, и результат их выполнения.

Однако он отображает такие сообщения из:

  • веб-содержимого, размещенного на всех вкладках браузера
  • собственный код браузера.
  • надстройки.

Сообщения от надстроек

Консоль браузера отображает сообщения регистрируется всеми надстройками Firefox.

Например, вот очень простая надстройка SDK надстройки, которая просто регистрирует ошибку, когда пользователь щелкает значок:

 //значок в кодировке base-64, из значка "Vaga" http://edmerritt.com/setvar icon = "data: image/png; base64, iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9" + "hAAAC90lEQVR4XkW  mbmZNGqcJGjaGBq7UUGpYCEUXMSFLgRBdKeIG6F06aKUt6irEks "+ "R3JjWGAquSjeW8p6g3UQeCPKeJvCgRYP4QxK0TaPPGJPMZMzM3J4bM9ED35x7z/Noud + 9c0yKooBh" + "h6FQV1lRZmRZ9l8riksplQjhedVssWQQm4SQwOMXL3YNviAIwBmb/WDwVT6X + 1snZMz18GFLe3s7e" + "dLdDR2dncTl9bZQjhvD/Д//гс +/gTtGjGJJkv5wtrTYHLIMaioFFL2sqgA8D3VWK9gcDjhvbLRlUq" + "mX38LhB93Pn08BGnewuNhVyOennW63zX5xAdfJJKiXl6Di1ewTExWvZrNQwriYz4PT4yH/Hx9PHm5" +" s3DRQ8M5CQ0OzXZKgnMmAjqfqmB  BHRqC + pwcco6OgUQoaxhXMO3QdiMVCsvH462Qy2UxKkuTHO4N2" + "clIh6UimABVA1bOYztaYB1TpvH8fThMJj1vTholcLLqsHAeqJN0Wo9dwz0wtFkFjC6MRxus9Hrj68" + "QM0TRsgiiQRARtI2J0yQpVYzuVuGqA3VFCGchnqzGaQrq5A13Uf4fE/lzSNUJ4HDZMGObu1xXArv6" + "rOhDy5VALzvXtMQSvHC0Imz4YJA4ysVQvE3l7oCAaZZ/EaTPhLc4UC1DU1sQZJTsAJO0 + ngXM6Qef" + "5mgKusRGY8aJYK2YqCfLSiQSIbW3sClGOx/EsZLP5M10Hs8sFOsdVyL/W1yERCkF6ba1WLGD + Fz6q" + "xObh6VOmIML5ZmZ26x2Odz + PjtRzfBzB6wXebgeTIEBubw/AYgEz7q2PHsE5HnK6vw/uvj7gRPEvV" + "LAKOEgVbL59u/zl2bPy2vQ03Z6bo7vBID0Ih + n3hQW6NTtLMUc/ джо/TjaUlGovFtqPRaD97WFZcQ2" + "xlZSoSCJx8RvLy0BB97/fTD4OD9NPkJP0aCNB/IxGKhX/u7Oz0Mz5rYGKfuxaPx5tR2jBiAHM + 9K2" + "IJK6jiAhi1efznRn837fI5BVWw7NCAAAAAElFTkSuQmCC"; виджет = требуется ( "SDK/виджет"): в-ошибки случились "метка:«ошибка виджета ({идентификатор."!  ", contentURL: icon, onClick: logError}); function logError () {console.error (" что-то пошло не так! ");}  

Если вы создадите это как XPI файл, затем откройте консоль браузера, затем откройте файл XPI в Firefox и установите его, вы увидите ic на панели надстроек:

Щелкните значок . Вы увидите такой вывод в консоли браузера:

Только для надстроек на основе SDK надстройки к сообщению добавляется префикс с названием надстройки («ошибка журнала»), что упрощает поиск всех сообщений от этого надстройки с помощью параметра «Фильтр вывода. » поисковая строка. По умолчанию в консоль регистрируются только сообщения об ошибках, хотя вы можете изменить это в настройках браузера.

Командная строка консоли браузера

Как и веб-консоль, Интерпретатор командной строки позволяет вам оценивать выражения JavaScript в реальном времени:

Так же, как интерпретатор командной строки веб-консоли, эта командная строка поддерживает автозаполнение, историю, различные сочетания клавиш и вспомогательные команды. Если результатом команды является объект, вы можете щелкнуть на объекте, чтобы увидеть его подробности.

Но пока веб-консоль выполняет код в области окна содержимого, к которому она прикреплена, консоль браузера выполняет код в области Chrome окна браузера. . Вы можете подтвердить это, оценив window :

Это означает, что вы можете управлять браузером: открывать, закрывать вкладки и окна и изменять содержимое, которое они размещают, а также изменять пользовательский интерфейс браузера, создавая, изменяя и удаляя элементы XUL.

Управление браузером

Интерпретатор командной строки получает доступ к объекту tabbrowser через глобальный gBrowser , и это позволяет управлять браузером из командной строки. Попробуйте запуск этого кода в командной строке консоли браузера (помните, что для отправки нескольких строк в консоль браузера используйте Shift + Enter):

  var newTabBrowser = gBrowser.getBrowserForTab (gBrowser.  selectedTab); newTabBrowser.addEventListener ("load", function () {newTabBrowser.contentDocument.body.innerHTML = "

эта страница была съедена

";}, true); newTabBrowser.contentDocument.location.href = "https://mozilla.org/";

Он добавляет слушателя к событию load текущей выбранной вкладки, которое будет поглощать новый страница, затем загружает новую страницу.

Изменение пользовательского интерфейса браузера

Поскольку глобальный объект window является окном Chrome браузера, вы также можете изменить пользовательский интерфейс браузера. В Windows следующий код добавит новый элемент в главное меню браузера:

  var parent = window.document.getElementById ("appmenuPrimaryPane"); var makeTheTea = gBrowser.  ownerDocument.defaultView.document.createElementNS ("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "menuitem"); makeTheTea.setAttribute ("label", "Хорошая чашка  чай? "); parent.appendChild (makeTheTea);  

В OS X этот аналогичный код добавит новый элемент в меню «Инструменты»:

  var parent = window.document.getElementById ("menu_ToolsPopup"  ); var makeTheTea = gBrowser.ownerDocument.defaultView.document.createElementNS ("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "menuitem"); makeTheTea.setAttribute ("label  "," Чашка чая? "); Parent.appendChild (makeTheTea);  

Оцените статью
Botgadget.ru
Добавить комментарий