background
Typ | Object |
---|---|
Verpflichtend | Nein |
Manifest-Version | 2 oder höher |
Beispiel |
json
|
Verwenden Sie den Schlüssel background
, um ein oder mehrere Hintergrundskripte, eine Hintergrundseite oder einen Service Worker in Ihre Erweiterung einzuschließen.
Hintergrundskripte sind der Ort, an dem Code platziert wird, der einen langfristigen Zustand aufrechterhalten oder langfristige Operationen unabhängig von der Lebensdauer einzelner Webseiten oder Browserfenster ausführen muss.
Hintergrundskripte werden geladen, sobald die Erweiterung geladen wird, und bleiben geladen, bis die Erweiterung deaktiviert oder deinstalliert wird, es sei denn, persistent
ist als false
angegeben. Sie können alle WebExtension-APIs im Skript verwenden, wenn Sie die notwendigen Berechtigungen angefordert haben.
Für weitere Details siehe Hintergrundskripte.
Der Schlüssel background
ist ein Objekt, das eine der folgenden Eigenschaften enthalten muss (für weitere Informationen zur Unterstützung dieser Eigenschaften siehe Browser-Unterstützung):
page |
Wenn Sie spezifische Inhalte auf der Hintergrundseite benötigen, können Sie eine Seite mithilfe der Eigenschaft
Wenn Sie diese Eigenschaft verwenden, können Sie keine Hintergrundskripte mit |
scripts |
Ein Die Skripte teilen denselben globalen Kontext Die Skripte werden in der Reihenfolge geladen, in der sie im Array erscheinen.
Wenn Sie
Hinweis: Wenn Sie ein Skript von einem entfernten Standort mit dem Tag |
service_worker |
Geben Sie eine JavaScript-Datei als den Service Worker der Erweiterung an. Ein Service Worker ist ein Hintergrundskript, das als Hauptereignishandler der Erweiterung fungiert. |
Der Schlüssel background
kann auch diese optionale Eigenschaft enthalten:
persistent |
Ein Wenn weggelassen, ist diese Eigenschaft standardmäßig
|
preferred_environment |
Ein Wenn
Chrome unterstützt nur Service Worker, daher ignoriert es diesen Schlüssel. Wenn er weggelassen wird, führen Firefox und Safari Hintergrundskripte als Dokumente aus. Safari verwendet einen Service-Worker-Kontext, wenn die Erweiterung |
type |
Ein Bestimmt, ob die in
Wenn weggelassen, ist diese Eigenschaft standardmäßig auf |
Browser-Unterstützung
Die Unterstützung für die Eigenschaften scripts
, page
und service_worker
variiert zwischen den Browsern wie folgt:
- Chrome:
- unterstützt
background.service_worker
. - unterstützt
background.scripts
(undbackground.page
) nur in Manifest V2-Erweiterungen. - vor Chrome 121 lehnt Chrome das Laden einer Manifest V3-Erweiterung mit vorhandenem
background.scripts
oderbackground.page
ab. Ab Chrome 121 wird deren Vorhandensein in einer Manifest V3-Erweiterung ignoriert.
- unterstützt
- Firefox:
background.service_worker
wird nicht unterstützt (siehe Firefox Fehler 1573659).- unterstützt
background.scripts
(oderbackground.page
), wennservice_worker
nicht angegeben ist oder die Service Worker-Funktion deaktiviert ist. Vor Firefox 120 hat Firefox die Hintergrundseite nicht gestartet, wennservice_worker
vorhanden war (siehe Firefox Fehler 1860304). Ab Firefox 121 startet die Hintergrundseite wie erwartet, unabhängig von der Anwesenheit vonservice_worker
.
- Safari:
- unterstützt
background.scripts
(oderbackground.page
) undbackground.service_worker
. Wenn beide angegeben sind, werdenbackground.scripts
(oderbackground.page
) verwendet, es sei denn,preferred_environment
ist aufservice_worker
gesetzt.
- unterstützt
Um dies zu veranschaulichen, ist hier ein Beispiel für eine plattformübergreifende Erweiterung, die scripts
und service_worker
unterstützt. Das Beispiel hat diese manifest.json-Datei:
{
"name": "Demo of service worker + event page",
"version": "1",
"manifest_version": 3,
"background": {
"scripts": ["background.js"],
"service_worker": "background.js"
}
}
Und, background.js enthält:
if (typeof browser == "undefined") {
// Chrome does not support the browser namespace yet.
globalThis.browser = chrome;
}
browser.runtime.onInstalled.addListener(() => {
browser.tabs.create({ url: "http://example.com/first-run.html" });
});
Wenn die Erweiterung ausgeführt wird, passiert Folgendes:
- In Chrome wird die Eigenschaft
service_worker
verwendet und ein Service Worker gestartet, der die Registerkarte öffnet, weil Chrome in einer Manifest V3-Erweiterung nur Service Worker für Hintergrundskripte unterstützt. - In Firefox wird die Eigenschaft
scripts
verwendet und ein Skript gestartet, das die Registerkarte öffnet, weil Firefox nur Skripte für Hintergrundskripte unterstützt. - In Safari wird die Eigenschaft
service_worker
verwendet und ein Service Worker gestartet, der die Registerkarte öffnet, weil Safari Vorrang darauf legt, Service Worker für Hintergrundskripte zu verwenden.
Beispiele
"background": {
"scripts": ["jquery.js", "my-background.js"]
}
Laden Sie zwei Hintergrundskripte.
"background": {
"page": "my-background.html"
}
Laden Sie eine benutzerdefinierte Hintergrundseite.