runtime.getBackgroundPage()
Ruft das Window
-Objekt für die Hintergrundseite ab, die innerhalb der aktuellen Erweiterung läuft. 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 Scope des Hintergrundskripts zu erhalten. Dadurch können sie auf Variablen zugreifen oder Funktionen aufrufen, die in diesem Scope definiert sind. "Privilegiertes Skript" umfasst hier Skripte, die in Optionsseiten laufen, oder Skripte, die in Browser-Aktions- oder Seiten-Aktions- Popups laufen, aber 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.
Beachten Sie auch, dass diese Methode nicht in einem privaten Fenster in Firefox verwendet werden kann — sie gibt immer null
zurück. Weitere Informationen finden Sie im verwandten Fehler bei Bugzilla.
Wenn die Hintergrundseite eine Ereignisseite ist, stellt das System sicher, dass sie geladen wird, bevor das Versprechen aufgelöst wird.
Dies ist eine asynchrone Funktion, die ein Promise
zurückgibt.
Hinweis: In Firefox kann diese Methode nicht im privaten Modus verwendet werden — sie gibt immer null
zurück. Weitere Informationen finden Sie im Firefox-Fehler 1329304.
In Chrome ist diese Methode nur mit persistierenden Hintergrundseiten verfügbar, die in Manifest V3 nicht verfügbar sind, daher sollten Sie die Verwendung von Manifest V2 in Betracht ziehen. Details finden Sie hier.
Ziehen Sie in Betracht, runtime.sendMessage()
oder runtime.connect()
zu verwenden, die in beiden oben genannten Szenarien korrekt funktionieren.
Syntax
let gettingPage = browser.runtime.getBackgroundPage()
Parameter
Keine.
Rückgabewert
Browser-Kompatibilität
BCD tables only load in the browser
Beispiele
Angenommen, ein Hintergrundskript definiert eine Funktion foo()
:
// 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:
// popup.js
function onGot(page) {
page.foo();
}
function onError(error) {
console.log(`Error: ${error}`);
}
let getting = browser.runtime.getBackgroundPage();
getting.then(onGot, onError);
Hinweis: Diese API basiert auf der chrome.runtime
-API von Chromium. Diese Dokumentation leitet sich von runtime.json
im Chromium-Code ab.