2012-04-13 12 views
11

Mein Benutzerkonto druckt einige Informationen mit console.log().console.log funktioniert nicht, wenn in einem Firefox, Greasemonkey-Skript verwendet

Das funktioniert in Chrome gut, aber wenn ich diesen Benutzer in Firefox (Greasemonkey) installiere, zeigt die Webkonsole in Firefox nichts an.

Ich suchte nach einer Lösung und einige vorgeschlagen, unsafeWindow zu verwenden, aber es zeigt auch keine Ausgabe. Außerdem kann unsafeWindow nicht für Chrom verwendet werden. Ich habe sogar Firebug installiert, aber es hat keinen Sinn gemacht. Wie kann ich das beheben?

Zum Beispiel habe ich versucht, diese in Firefox userscript:

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

Antwort

16

Sie meinen es nicht, wenn über Greasemonkey installiert funktioniert, nicht wahr?
Vor nicht langer Zeit, Greasemonkey broke console.log (Neu! Bug report). Jetzt, um die Ergebnisse einer einfachen console.log() Anruf von einem Greasemonkey zu sehen, müssen Sie in Firefox Fehler Konsole, nicht Firebug suchen.

können Sie FF Fehlerkonsole sehen Sie mit: CtrlShift-J.

Allerdings können Sie unsafeWindow.console.log() in Chrome und Greasemonkey Skripts verwenden. Chrome hat jetzt eingeschränkte Unterstützung für unsafeWindow.

Wenn Sie unsafeWindow verwenden, haben Sie Zugriff auf die gesamte Palette von Firebug's logging functions von Greasemonkey. (Firebug muss installiert sein, und sie könnten noch nicht in Chrome userscripts arbeiten, ich habe nicht auf diese Weise in eine Zeit lang getestet.)


In Firefox, wenn Firebug nicht installiert ist, oder es ist nicht aktiv für die Seite, dann unsafeWindow.console.log() Anrufe an dem neuen "Web Console" (CtrlShift-K) werden angezeigt.
Sie müssen die unsafeWindow in einem Greasemonkey-Skript verwenden.

Beachten Sie, dass Firefox unterstützt derzeit console.log(), console.info(), console.warn() und console.error() nativ - keine Firebug benötigt.

+0

es funktioniert, wenn ich 'unsafeWindow.console.log()' in Firebug aber wie bekomme ich die Ausgabe in webConsole. Gibt es keine Möglichkeit, die Ausgabe ohne Firebug zu erhalten. – user1275375

+0

Siehe die aktualisierte Antwort. –

+0

Ich versuchte dies, aber nichts wird in der Webkonsole angezeigt – user1275375

5

Warten Sie eine Minute: Wenn die Frage über das Anmelden der Konsole mit Greasemonkey ist (ich könnte schwören, ich sah das Tag ), warum nicht die GM_log Methode verwenden?

// ==UserScript== 
// @name   GM_log Example 
// @namespace  http://www.example.com/ 
// ==/UserScript== 

GM_log("This is an example of GM_log"); 

oder ich etwas fehle?

PS: Sie können auch nach javascript.options.showInConsole in about: config suchen. Es sollte true sein.Ich

+1

Ja, Sie können 'GM_log' verwenden, aber es ist nicht tragbar oder Unit-testbar. Außerdem ist es im Vergleich zur Konsolen-API ziemlich nervig - sowohl die native Version, die jetzt von den meisten Browsern unterstützt wird, als auch die Firebug-Extra-süße Konsolen-API. –

1

festgestellt, dass (Prüfung mit Chrom/Tampermonkey), was Sie brauchen, ist:
window.log("<message goes here>"); nicht unsafeWindow.console.log("<msg>"); als unsafeWindow und console kommen als undefiniert. Versuchen Sie das, da ich mir ziemlich sicher bin, dass Sie das in späteren Versionen von Browsern usw. tun sollten.
Ich hoffe, das hat geholfen!

Verwandte Themen