runtime.getBackgroundPage()

Ruft das Window-Objekt für die Hintergrundseite ab, die innerhalb der aktuellen Erweiterung ausgeführt wird. Wenn die Hintergrundseite nicht persistent ist (eine Ereignisseite) und nicht läuft, wird die Hintergrundseite gestartet.

Dies bietet eine bequeme Möglichkeit für andere privilegierte Erweiterungsskripte, direkten Zugriff auf den Geltungsbereich des Hintergrundskripts zu erhalten. Dadurch können sie auf Variablen zugreifen oder Funktionen aufrufen, die in diesem Geltungsbereich definiert sind. "Privilegiertes Skript" umfasst hier Skripte, die in Optionsseiten ausgeführt werden, oder Skripte, die in Browser-Aktions- oder Seiten-Aktions-Popups ausgeführt werden, jedoch nicht Inhaltsskripte.

Beachten Sie, dass Variablen, die mit const oder let deklariert wurden, nicht im Window-Objekt erscheinen, das von dieser Funktion zurückgegeben wird.

Bitte beachten Sie auch, dass diese Methode in einem privaten Fenster in Firefox nicht verwendet werden kann - sie gibt immer null zurück. Weitere Informationen finden Sie im zugehörigen Bug bei Bugzilla.

Wenn die Hintergrundseite eine Ereignisseite ist, stellt das System sicher, dass sie geladen ist, bevor das Versprechen gelöst wird.

Dies ist eine asynchrone Funktion, die ein Promise zurückgibt.

Hinweis: In Firefox kann diese Methode im Privaten Modus nicht verwendet werden — sie gibt immer null zurück. Weitere Informationen finden Sie unter Firefox Bug 1329304.

In Chrome ist diese Methode nur mit persistenten Hintergrundseiten verfügbar, die in Manifest V3 nicht verfügbar sind. Daher sollten Sie in Betracht ziehen, Manifest V2 zu verwenden. Weitere Details finden Sie unter Migration zu einem Service Worker.

Erwägen Sie die Verwendung von runtime.sendMessage() oder runtime.connect(), die in beiden oben genannten Szenarien korrekt funktionieren.

Syntax

js
let gettingPage = browser.runtime.getBackgroundPage()

Parameter

Keine.

Rückgabewert

Ein Promise, das mit dem Window-Objekt der Hintergrundseite erfüllt wird, falls vorhanden. Wenn die Erweiterung keine Hintergrundseite enthält, wird das Versprechen mit einer Fehlermeldung abgelehnt.

Beispiele

Angenommen, ein Hintergrundskript definiert eine Funktion foo():

js
// background.js

function foo() {
  console.log("I'm defined in background.js");
}

Ein Skript, das in einem Popup läuft, kann diese Funktion direkt so aufrufen:

js
// popup.js

function onGot(page) {
  page.foo();
}

function onError(error) {
  console.log(`Error: ${error}`);
}

let getting = browser.runtime.getBackgroundPage();
getting.then(onGot, onError);

Browser-Kompatibilität

Hinweis: Diese API basiert auf der chrome.runtime-API von Chromium. Diese Dokumentation ist abgeleitet von runtime.json im Chromium-Code.