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 richtige Ort, um Code zu hinterlegen, der langfristigen Zustand pflegen oder langfristige Operationen unabhängig von der Lebensdauer bestimmter 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 in dem Skript beliebige WebExtension-APIs verwenden, wenn Sie die notwendigen Berechtigungen angefordert haben.
Siehe Hintergrundskripte für weitere Details.
Der background
-Schlüssel ist ein Objekt, das eine der folgenden Eigenschaften haben muss (für weitere Informationen darüber, wie diese Eigenschaften unterstützt werden, siehe Browser-Unterstützung):
page |
Wenn Sie spezifische Inhalte auf der Hintergrundseite benötigen, können Sie eine Seite mit 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 |
service_worker |
Geben Sie eine JavaScript-Datei als Service Worker der Erweiterung an. Ein Service Worker ist ein Hintergrundskript, das als Hauptereignishandler der Erweiterung fungiert. |
Der background
-Schlüssel kann auch diese optionale Eigenschaft enthalten:
persistent |
Ein Wenn weggelassen, ist diese Eigenschaft standardmäßig auf
|
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 je nach Browser wie folgt:
- Chrome:
- unterstützt
background.service_worker
. - unterstützt
background.scripts
(undbackground.page
) nur in Manifest V2-Erweiterungen. - vor Chrome 121 verweigert Chrome das Laden einer Manifest V3-Erweiterung, wenn
background.scripts
oderbackground.page
vorhanden sind. Ab Chrome 121 wird ihre Anwesenheit 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 oder die Service Worker-Funktion deaktiviert ist. Vor Firefox 120 startete Firefox die Hintergrundseite nicht, 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.service_worker
. - unterstützt
background.scripts
(oderbackground.page
), wennservice_worker
nicht angegeben ist.
- unterstützt
Zur Veranschaulichung, dies ist ein Beispiel für eine plattformübergreifende Erweiterung, die scripts
und service_worker
unterstützt. Das Beispiel verfügt über 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
service_worker
-Eigenschaft verwendet, und ein Service Worker startet, der den Tab öffnet, weil in einer Manifest V3-Erweiterung Chrome nur Service Worker für Hintergrundskripte unterstützt. - in Firefox wird die
scripts
-Eigenschaft verwendet, und ein Skript startet, das den Tab öffnet, weil Firefox nur Skripte für Hintergrundskripte unterstützt. - in Safari wird die
service_worker
-Eigenschaft verwendet, und ein Service Worker startet, der den Tab öffnet, weil Safari Service Worker für Hintergrundskripte bevorzugt verwendet.
Beispiele
"background": {
"scripts": ["jquery.js", "my-background.js"]
}
Laden von zwei Hintergrundskripten.
"background": {
"page": "my-background.html"
}
Laden einer benutzerdefinierten Hintergrundseite.
Browser-Kompatibilität
BCD tables only load in the browser