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 (я мог бы поклясться, что увидел тег ), почему бы не использовать метод 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. Попробуйте это, так как я уверен, что вы должны делать это в более поздних версиях браузеров и т.д.
Надеюсь, это помогло!