web-dev-qa-db-ja.com

Firefox、Greasemonkeyスクリプトで使用すると、console.logが機能しません

私のユーザースクリプトは、console.log()を使用していくつかの情報を出力します。

これはChromeでは正常に機能しますが、このユーザースクリプトをFirefox(Greasemonkey)にインストールすると、FirefoxのWebコンソールに何も表示されません。

解決策を検索し、unsafeWindowを使用することを提案したものもありましたが、出力も表示されません。さらに、unsafeWindowはクロムには使用できません。 Firebugもインストールしましたが、無駄でした。どうすればこれを解決できますか?

たとえば、Firefoxで次のユーザースクリプトを試しました。

// ==UserScript==
// @name        console
// ==UserScript==
console.log("hello");
13
user1275375

Greasemonkey経由でインストールすると機能しないということですか?
少し前、 Greasemonkeyがconsole.logを壊しました (新規! バグレポート )。ここで、Greasemonkeyからのプレーンなconsole.log()呼び出しの結果を確認するには、FirebugではなくFirefoxエラーコンソールを調べる必要があります。

次のボタンを押すと、FFのエラーコンソールが表示されます。 CtrlShiftJ

ただし、ChromeとGreasemonkeyスクリプトの両方でunsafeWindow.console.log()を使用できます。ChromeはunsafeWindowのサポートが制限されています。

unsafeWindowを使用すると、Greasemonkeyから Firebugのロギング関数 の全範囲にアクセスできます。 (Firebugをインストールする必要がありますが、それでもChrome userscripts;しばらくの間その方法をテストしていません。)


Firefoxでは、Firebugがインストールされていない場合、またはページに対してアクティブでない場合unsafeWindow.console.log()呼び出しがNewに表示されます「Webコンソール」(CtrlShiftK)。
Greasemonkeyスクリプト内では、unsafeWindowを使用する必要があります。

Firefoxは現在、console.log()console.info()console.warn()、およびconsole.error()をネイティブにサポートしていることに注意してください。Firebugは必要ありません。

17
Brock Adams

ちょっと待ってください:質問が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:about:configでjavascript.options.showInConsoleを確認することもできます。 trueである必要があります。

5
RASG

(Chrome/Tampermonkeyでテストして)必要なものは次のとおりです。
window.log("<message goes here>"); not unsafeWindow.console.log("<msg>"); as unsafeWindowおよびconsoleは未定義として表示されます。それを試してみてください。それは、後のバージョンのブラウザなどで行うことになっている方法だと確信しています。

1
Starwort