Console.log не работает при использовании в Firefox, Greasemonkey script
Моя учетная запись печатает некоторую информацию с помощью console.log()
.
Это отлично работает в Chrome, но когда я устанавливаю этот пользовательский текст в Firefox (Greasemonkey), веб-консоль в Firefox ничего не отображает.
Я искал решение, а некоторые предложили использовать unsafeWindow
, но он также не отображает никакого вывода. Более того, unsafeWindow
не может использоваться для хрома. Я даже установил Firebug, но это было бесполезно. Как я могу это решить?
Например, я пробовал этот usercript в Firefox:
// ==UserScript==
// @name console
// ==UserScript==
console.log("hello");
Ответы
Ответ 1
Вы имеете в виду, что он не работает при установке через Greasemonkey, верно?
Недавно Greasemonkey нарушил console.log (Новый! Отчет об ошибке). Теперь, чтобы увидеть результаты простого вызова console.log()
с Greasemonkey, вам нужно посмотреть в консоли Firefox, а не в Firebug.
Вы можете увидеть консоль FF Error, нажав: Ctrl Shift J.
Однако, вы можете использовать unsafeWindow.console.log()
в сценариях Chrome и Greasemonkey. Chrome теперь имеет ограниченную поддержку unsafeWindow
.
Если вы используете unsafeWindow
, у вас есть доступ ко всему диапазону функций ведения журнала Firebug от Greasemonkey. (Firebug должен быть установлен, и они все еще могут не работать в пользовательских сценариях Chrome, я не проверял этот способ через некоторое время.)
В Firefox , если Firebug не установлен или он неактивен для страницы, то вызовы unsafeWindow.console.log()
будут отображаться в новой "Веб-консоли" (Ctrl Shift K).
Вы должны использовать unsafeWindow
, когда внутри Greasemonkey script.
Обратите внимание, что Firefox в настоящее время поддерживает console.log()
, console.info()
, console.warn()
и console.error()
изначально - не требуется Firebug.
Ответ 2
Подождите минуту: если вопрос о входе в консоль с помощью Greasemonkey (я мог бы поклясться, что увидел тег greasemonkey), почему бы не использовать метод GM_log
?
// ==UserScript==
// @name GM_log Example
// @namespace http://www.example.com/
// ==/UserScript==
GM_log("This is an example of GM_log");
Или я что-то пропустил?
PS: вы также можете проверить javascript.options.showInConsole
примерно в: config. это должно быть true
.
Ответ 3
Я обнаружил, что (тестирование с помощью Chrome/Tampermonkey) вам нужно:
window.log("<message goes here>");
не unsafeWindow.console.log("<msg>");
как unsafeWindow
и console
появляются как undefined. Попробуйте это, так как я уверен, что вы должны делать это в более поздних версиях браузеров и т.д.
Надеюсь, это помогло!