Google Chrome-Erweiterung :: console.log() von der Hintergrundseite?
Lesezeit: 4 Minuten
Hagelholz
Wenn ich anrufe console.log('something'); von der Popup-Seite oder einem beliebigen Skript enthalten, dass es gut funktioniert.
Da die Hintergrundseite jedoch nicht direkt von der Popup-Seite ausgeführt wird, ist sie nicht in der Konsole enthalten.
Gibt es einen Weg, den ich bekommen kann console.log()‘s auf der Hintergrundseite, um in der Konsole für die Popup-Seite angezeigt zu werden?
Gibt es eine Möglichkeit, von der Hintergrundseite aus eine Funktion in der Popup-Seite aufzurufen?
Was meinst du genau mit “funktioniert einwandfrei”? Wo lesen Sie “etwas”? Die Verwendung von console.log() in einem Popup-Fenster sollte nicht in der Konsole der geladenen Seite gedruckt werden – da die Frage 2 Jahre alt ist, hat sich die API geändert?
– anddam
28. November 2012 um 9:48 Uhr
Wenn Sie mit der rechten Maustaste klicken -> Popup in Ihrer Browseraktion überprüfen, erhalten Sie eine Seite mit Entwicklertools für Ihre Erweiterung. popup.js druckt Protokolle dazu.
– not_shitashi
3. Juli 2013 um 21:51 Uhr
Der Kommentar von @not_shitashi sollte die Antwort auf diese Frage sein.
– Gabe
4. Februar 2018 um 17:36 Uhr
serg
Sie können die Konsole der Hintergrundseite öffnen, indem Sie in der Erweiterungsliste auf den Link “background.html” klicken.
Um auf die Hintergrundseite zuzugreifen, die Ihren Erweiterungen entspricht, öffnen Sie Settings / Extensions oder öffnen Sie einen neuen Tab und geben Sie ein chrome://extensions. Sie werden so etwas wie diesen Screenshot sehen.
Klicken Sie unter Ihrer Erweiterung auf den Link background page. Dies öffnet ein neues Fenster. Für die Kontextmenübeispiel das fenster hat den titel: _generated_background_page.html.
Prost, das ist mir bewusst, aber das direkte Öffnen der Hintergrundseite ruft nichts von der Popup-Seite auf.
– Hagel
2. Oktober 2010 um 3:14 Uhr
Beim Öffnen der Hintergrundseite werden keine Konsolenprotokollierungsinformationen ausgegeben.
– Layke
26. Oktober 2012 um 13:03 Uhr
@Hailwood Das Öffnen der Hintergrundseite ruft nichts auf, zeigt aber die Konsole für die Hintergrundseite an.
– anddam
28. November 2012 um 22:31 Uhr
@Layke Nachdem Sie die Hintergrundseite geöffnet haben, müssen Sie noch hineinschreiben, dh direkt console.log() von der Hintergrundseite verwenden oder, wie mohamed-mansour sagte, dieselbe Methode für das von getBackgroundPage() zurückgegebene Objekt aufrufen.
– anddam
28. November 2012 um 22:34 Uhr
Ich fand diese Frage bei der Suche nach der Überprüfung einer Erweiterungsausgabe (wie OP) und fand diese Antwort sehr nützlich, da ich damit die Konsolenprotokollierung überprüfen konnte, ohne eine Inhaltsseite zu durchlaufen.
var bkg = chrome.extension.getBackgroundPage();
bkg.console.log('foo');
Nun, wenn Sie dasselbe im Inneren tun möchten Inhaltsskripte musst du verwenden Nachrichtenübergabe um das zu erreichen. Der Grund dafür ist, dass beide zu unterschiedlichen Domänen gehören, was Sinn macht. Es gibt viele Beispiele in der Nachrichtenübergabe Seite zum Auschecken.
Hoffe das löscht alles.
@MohamedMansour, diese Lösung funktioniert bei mir nicht. Wenn ich alert()chrome.extension.getBackgroundPage()Ich bekomme null. Benötige ich Berechtigungen oder eine andere Konfiguration?
– jds
22. Oktober 2014 um 22:33 Uhr
@gwg hat Ihre Erweiterung eine Hintergrundseite? Gemäß der Dokumentation “Gibt null zurück, wenn die Erweiterung keine Hintergrundseite hat.” developer.chrome.com/extensions/…
– Mohamed Mansur
17. Dezember 2014 um 22:32 Uhr
Dies funktioniert perfekt für meine eigenen Nachrichten an die Konsole. Vielen Dank. Irgendwelche Gedanken darüber, wie auch Ausnahmen usw. von popup.js in der Konsole von background.js angezeigt werden können?
– steven_noble
18. August 2015 um 2:45 Uhr
Um Ihre Frage direkt zu beantworten, wenn Sie anrufen console.log("something") Vom Hintergrund wird diese Nachricht an die Konsole der Hintergrundseite protokolliert. Um es anzuzeigen, können Sie zu gehen chrome://extensions/ und klicken Sie darauf inspect view unter Ihrer Nebenstelle.
Wenn Sie auf das Popup klicken, wird es in die aktuelle Seite geladen, daher sollte die Datei console.log die Protokollnachricht auf der aktuellen Seite anzeigen.
meine extension hat das nicht, andere extensions aber schon ! wie aktiviere ich es
– Ahmed Eid
28. Mai 2017 um 22:22 Uhr
Wenn Sie 3 Monitore wie ich haben … schwenken Sie Ihren Kopf. Es öffnete ChromeDevTools am anderen Ende meines Monitor-Arrays und ich habe es nicht gesehen.
– mp
13. April 2019 um 20:05 Uhr
Sie können immer noch console.log() verwenden, aber es wird in einer separaten Konsole angemeldet. Um es anzuzeigen, klicken Sie mit der rechten Maustaste auf das Erweiterungssymbol und wählen Sie „Popup prüfen“.
dd .
Die einfachste Lösung wäre, den folgenden Code am Anfang der Datei hinzuzufügen. Und dann können Sie alles voll nutzen Chrome-Konsolen-API wie Sie es normalerweise tun würden.
console = chrome.extension.getBackgroundPage().console;
// for instance, console.assert(1!=1) will return assertion error
// console.log("msg") ==> prints msg
// etc
Was meinst du genau mit “funktioniert einwandfrei”? Wo lesen Sie “etwas”? Die Verwendung von console.log() in einem Popup-Fenster sollte nicht in der Konsole der geladenen Seite gedruckt werden – da die Frage 2 Jahre alt ist, hat sich die API geändert?
– anddam
28. November 2012 um 9:48 Uhr
Wenn Sie mit der rechten Maustaste klicken -> Popup in Ihrer Browseraktion überprüfen, erhalten Sie eine Seite mit Entwicklertools für Ihre Erweiterung. popup.js druckt Protokolle dazu.
– not_shitashi
3. Juli 2013 um 21:51 Uhr
Der Kommentar von @not_shitashi sollte die Antwort auf diese Frage sein.
– Gabe
4. Februar 2018 um 17:36 Uhr