Google Chrome-Erweiterung :: console.log() von der Hintergrundseite?

Lesezeit: 4 Minuten

Benutzer-Avatar
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

Benutzer-Avatar
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.

Dialogfeld Chrome-Erweiterungen

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.

    – anddam

    28. November 2012 um 22:36 Uhr

Benutzer-Avatar
Mohammed Mansur

Irgendein Erweiterungsseite (außer Inhaltsskripte) hat direkten Zugriff auf die Hintergrundseite über chrome.extension.getBackgroundPage().

Das heißt, innerhalb der Popup-SeiteSie können einfach Folgendes tun:

chrome.extension.getBackgroundPage().console.log('foo');

Um die Verwendung zu vereinfachen:

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“.

Benutzer-Avatar
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

Benutzer-Avatar
O Fallante

const log = chrome.extension.getBackgroundPage().console.log;
log('something')

Protokoll öffnen:

  • Öffnen: chrome://extensions/
  • Details > Hintergrundseite

Benutzer-Avatar
Faz

Versuchen Sie Folgendes, wenn Sie sich bei der Konsole der aktiven Seite anmelden möchten:

chrome.tabs.executeScript({
    code: 'console.log("addd")'
});

  • Erfordert Hostberechtigungen für die aktuelle Registerkarte.

    – Xan

    11. August 2014 um 8:10 Uhr

  • Sie können es zum Testen hinzufügen und entfernen, wenn Sie das Add-on veröffentlichen.

    – Faz

    14. August 2014 um 1:32 Uhr

1303740cookie-checkGoogle Chrome-Erweiterung :: console.log() von der Hintergrundseite?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy