background
Typ | Object |
---|---|
Verpflichtend | Nein |
Manifest-Version | 2 oder höher |
Beispiel |
json
|
Verwenden Sie den background
-Schlüssel, um ein oder mehrere Hintergrundskripte, eine Hintergrundseite oder einen Service Worker in Ihre Erweiterung einzubinden.
Hintergrundskripte sind der Ort, an dem Sie Code platzieren, der einen langfristigen Zustand aufrechterhalten oder langfristige Operationen unabhängig von der Lebensdauer einer bestimmten Webseite oder eines Browserfensters 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 auf false
gesetzt. Sie können in dem Skript jede WebExtension-API verwenden, wenn Sie die notwendigen Berechtigungen angefordert haben.
Siehe Background scripts für weitere Details.
Der background
-Schlüssel ist ein Objekt, das eines der folgenden Eigenschaften haben muss (für weitere Informationen zur Unterstützung dieser Eigenschaften siehe Browser-Kompatibilität):
page |
Wenn Sie spezifische Inhalte in der Hintergrundseite benötigen, können Sie eine Seite mithilfe der
Wenn Sie diese Eigenschaft verwenden, können Sie keine Hintergrundskripte mit |
scripts |
Ein Die Skripte teilen sich denselben Die Skripte werden in der Reihenfolge geladen, in der sie im Array erscheinen.
Wenn Sie
Hinweis: Wenn Sie ein Skript von einem entfernten Ort mit dem |
service_worker |
Geben Sie eine JavaScript-Datei als Service Worker der Erweiterung an. Ein Service Worker ist ein Hintergrundskript, das als Hauptereignis-Handler der Erweiterung fungiert. |
Der background
-Schlüssel kann auch diese optionale Eigenschaft enthalten:
persistent |
Ein Wenn diese Eigenschaft weggelassen wird, ist der Standardwert
|
preferred_environment |
Ein Wenn
Chrome unterstützt nur Service Worker und ignoriert daher diesen Schlüssel. Wenn weggelassen, 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 diese Eigenschaft weggelassen wird, ist der Standardwert |
Browser-Kompatibilität
Die Unterstützung für die Eigenschaften scripts
, page
und service_worker
variiert zwischen Browsern wie folgt:
- Chrome:
- unterstützt
background.service_worker
. - unterstützt
background.scripts
(undbackground.page
) nur in Manifest V2 Erweiterungen. - vor Chrome 121 weigert sich Chrome, eine Manifest V3 Erweiterung mit vorhandenen
background.scripts
oderbackground.page
zu laden. Ab Chrome 121 wird deren Vorhandensein in einer Manifest V3 Erweiterung ignoriert.
- unterstützt
- Firefox:
background.service_worker
wird nicht unterstützt (siehe Firefox-Bug 1573659).- unterstützt
background.scripts
(oderbackground.page
), wennservice_worker
nicht angegeben oder das Service-Worker-Feature deaktiviert ist. Vor Firefox 120 startete Firefox die Hintergrundseite nicht, wennservice_worker
vorhanden war (siehe Firefox-Bug 1860304). Ab Firefox 121 startet die Hintergrundseite erwartungsgemäß, 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 ist hier ein Beispiel einer plattformübergreifenden Erweiterung, die scripts
und service_worker
unterstützt. Beispielhaft hat diese eine 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, geschieht Folgendes:
- In Chrome wird die
service_worker
-Eigenschaft verwendet, und ein Service Worker wird gestartet, der den Tab öffnet, da Chrome in einer Manifest V3 Erweiterung nur Service Worker für Hintergrundskripte unterstützt. - In Firefox wird die
scripts
-Eigenschaft verwendet, und ein Skript wird gestartet, das den Tab öffnet, da Firefox nur Skripte für Hintergrundskripte unterstützt. - In Safari wird die
service_worker
-Eigenschaft verwendet, und ein Service Worker wird gestartet, der den Tab öffnet, da Safari Service Workern für Hintergrundskripte Priorität einräumt.
Beispiele
"background": {
"scripts": ["jquery.js", "my-background.js"]
}
Laden Sie zwei Hintergrundskripte.
"background": {
"page": "my-background.html"
}
Laden Sie eine benutzerdefinierte Hintergrundseite.