background
| Typ | Object |
|---|---|
| Erforderlich | 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 einzubinden.
Hintergrundskripte eignen sich für Code, der einen langfristigen Zustand aufrechterhalten oder länger andauernde Vorgänge ausführen muss – unabhängig von der Lebensdauer einzelner Webseiten oder Browserfenster.
Hintergrundskripte werden geladen, sobald die Erweiterung geladen wird, und bleiben geladen, bis die Erweiterung deaktiviert oder deinstalliert wird, sofern persistent nicht auf false gesetzt ist. Sie können im Skript alle WebExtension-APIs verwenden, für die Sie die erforderlichen Berechtigungen angefordert haben.
Weitere Einzelheiten finden Sie unter Hintergrundskripte.
Der Schlüssel background ist ein Objekt, das eine der folgenden Eigenschaften enthalten muss. Weitere Informationen zur Unterstützung dieser Eigenschaften finden Sie unter Browser-Unterstützung:
page |
Wenn Sie bestimmte Inhalte auf der Hintergrundseite benötigen, können
Sie mit der Eigenschaft
Wenn Sie diese Eigenschaft verwenden, können Sie keine
Hintergrundskripte mit |
scripts |
Ein Die Skripte teilen sich denselben globalen Die Skripte werden in der Reihenfolge geladen, in der sie im Array stehen.
Wenn Sie
Hinweis: Wenn Sie ein Skript mit dem
|
service_worker |
Legen Sie eine JavaScript-Datei als Service Worker der Erweiterung fest. Ein Service Worker ist ein Hintergrundskript, das als zentraler Event-Handler der Erweiterung dient. |
Der Schlüssel background kann außerdem die folgenden optionalen Eigenschaften enthalten:
persistent |
Ein Wenn die Eigenschaft weggelassen wird, ist ihr Standardwert in Manifest V2
|
preferred_environment |
Ein Wenn
Chrome unterstützt nur Service Worker und ignoriert daher diesen Schlüssel. Wenn die Eigenschaft weggelassen wird, führen Firefox und Safari Hintergrundskripte als Dokumente aus. Safari verwendet einen Service-Worker-Kontext, wenn die Erweiterung |
type |
Ein Legt fest, ob die unter
Wenn die Eigenschaft weggelassen wird, ist ihr Standardwert |
Browser-Unterstützung
Die Unterstützung für die Eigenschaften scripts, page und service_worker unterscheidet sich je nach Browser:
- Chrome:
- Unterstützt
background.service_worker. - Unterstützt
background.scripts(undbackground.page) nur in Erweiterungen mit Manifest V2. - Vor Chrome 121 verweigert Chrome das Laden einer Erweiterung mit Manifest V3, wenn
background.scriptsoderbackground.pagevorhanden ist. Ab Chrome 121 wird deren Vorhandensein in einer Erweiterung mit Manifest V3 ignoriert.
- Unterstützt
- Firefox:
background.service_workerwird nicht unterstützt (siehe Firefox-Bug 1573659).- Unterstützt
background.scripts(oderbackground.page), wennservice_workernicht angegeben oder die Service-Worker-Funktion deaktiviert ist. Vor Firefox 120 startete Firefox die Hintergrundseite nicht, wennservice_workervorhanden war (siehe Firefox-Bug 1860304). Ab Firefox 121 startet die Hintergrundseite wie erwartet, unabhängig davon, observice_workervorhanden ist.
- Safari:
- Unterstützt
background.scripts(oderbackground.page) undbackground.service_worker. - Wenn beides angegeben ist, verwendet Safari
background.scripts(oderbackground.page), sofernpreferred_environmentnicht aufservice_workergesetzt ist. - Wenn
preferred_environmentaufservice_workergesetzt undbackground.service_workernicht angegeben ist, erstellt Safari einen Service Worker ausbackground.scripts, sofern diese Eigenschaft vorhanden ist.
- Unterstützt
Browserübergreifende Hintergrundskripte mit Manifest V3
Um Browser mit unterschiedlichen Implementierungen von Hintergrundskripten für Manifest V3 zu unterstützen, geben Sie im Schlüssel background sowohl scripts als auch service_worker an. Browser, die Hintergrund-Service-Worker für Erweiterungen unterstützen, verwenden service_worker. Browser, die in diesem Fall Event Pages verwenden, greifen auf scripts zurück.
Für dieses Fallback-Verhalten müssen Sie preferred_environment nicht angeben. Verwenden Sie preferred_environment nur, wenn Safari oder ein anderer Browser, der mehrere Hintergrundumgebungen unterstützt, nach Möglichkeit service_worker bevorzugen soll.
Dieses Beispiel zeigt die relevanten Teile eines Manifests, das sowohl scripts als auch service_worker enthält:
{
"name": "Demo of service worker + event page",
"version": "1",
"manifest_version": 3,
"background": {
"scripts": ["background.js"],
"service_worker": "background.js"
}
}
Die Datei background.js enthält:
browser.runtime.onInstalled.addListener(() => {
browser.tabs.create({ url: "http://example.com/first-run.html" });
});
Mit dieser background-Konfiguration geschieht Folgendes:
- In Chrome wird die Eigenschaft
service_workerverwendet und ein Service Worker gestartet, da Chrome in Erweiterungen mit Manifest V3 für Hintergrundskripte nur Service Worker unterstützt. - In Firefox wird die Eigenschaft
scriptsverwendet und eine Event Page gestartet, da Firefox als Hintergrundskripte nur Skripte unterstützt. - In Safari wird standardmäßig die Eigenschaft
scriptsverwendet und eine Event Page gestartet.
Auch das Beispiel script-on-click veranschaulicht dieses Muster.
Beispiele
"background": {
"scripts": ["jquery.js", "my-background.js"]
}
Zwei Hintergrundskripte laden.
"background": {
"page": "my-background.html"
}
Eine benutzerdefinierte Hintergrundseite laden.