私のユーザースクリプトは、console.log()
を使用していくつかの情報を出力します。
これはChromeでは正常に機能しますが、このユーザースクリプトをFirefox(Greasemonkey)にインストールすると、FirefoxのWebコンソールに何も表示されません。
解決策を検索し、unsafeWindow
を使用することを提案したものもありましたが、出力も表示されません。さらに、unsafeWindow
はクロムには使用できません。 Firebugもインストールしましたが、無駄でした。どうすればこれを解決できますか?
たとえば、Firefoxで次のユーザースクリプトを試しました。
// ==UserScript==
// @name console
// ==UserScript==
console.log("hello");
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は必要ありません。
ちょっと待ってください:質問が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
である必要があります。
(Chrome/Tampermonkeyでテストして)必要なものは次のとおりです。window.log("<message goes here>");
not unsafeWindow.console.log("<msg>");
as unsafeWindow
およびconsole
は未定義として表示されます。それを試してみてください。それは、後のバージョンのブラウザなどで行うことになっている方法だと確信しています。