background
| Typ | Object |
|---|---|
| Erforderlich | Nein |
| Manifest-Version | 2 oder höher |
| Beispiel |
json |
Verwenden Sie den background Schlüssel, um ein oder mehrere Hintergrund-Skripte, eine Hintergrundseite oder einen Service Worker in Ihrer Erweiterung einzuschließen.
Hintergrund-Skripte sind der Ort, an dem Code abgelegt wird, der einen langfristigen Zustand aufrechterhalten oder langfristige Operationen unabhängig von der Lebensdauer bestimmter Webseiten oder Browserfenster durchführen muss.
Hintergrund-Skripte 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 alle WebExtension APIs im Skript verwenden, wenn Sie die notwendigen Berechtigungen beantragt haben.
Weitere Details finden Sie unter Background scripts.
Der background Schlüssel ist ein Objekt, das eine dieser Eigenschaften haben muss (für weitere Informationen zur Unterstützung dieser Eigenschaften siehe Browser support):
page |
Wenn Sie spezifischen Inhalt in der Hintergrundseite benötigen, können Sie eine Seite mit der
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 Ort mit dem |
service_worker |
Geben Sie eine JavaScript-Datei als Service Worker-Script 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 ausgelassen, wird dieser Wert standardmäßig auf
|
preferred_environment |
Ein Wenn
Chrome unterstützt nur Service Worker, daher ignoriert es diesen Schlüssel. Wenn ausgelassen, 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 ausgelassen, wird diese Eigenschaft standardmäßig auf |
Browser-Kompatibilität
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 weigert sich Chrome, eine Manifest V3-Erweiterung mit
background.scriptsoderbackground.pagezu laden. Ab Chrome 121 wird ihre Anwesenheit in einer Manifest V3-Erweiterung 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 von der Anwesenheit vonservice_worker.
- Safari:
- unterstützt
background.scripts(oderbackground.page) undbackground.service_worker. - wenn beide angegeben sind, verwendet Safari
background.scripts(oderbackground.page), es sei denn,preferred_environmentist aufservice_workergesetzt. - wenn
preferred_environmentaufservice_workergesetzt ist undbackground.service_workernicht angegeben ist, generiert Safari einen Service Worker ausbackground.scripts, wenn vorhanden.
- unterstützt
Zur Veranschaulichung ist dies ein Beispiel für eine Cross-Browser-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, geschieht Folgendes:
- in Chrome wird die
service_workerEigenschaft verwendet, und ein Service Worker startet, der die Registerkarte öffnet, da in einer Manifest V3-Erweiterung Chrome nur Service Worker für Hintergrundskripte unterstützt. - in Firefox wird die
scriptsEigenschaft verwendet, und ein Skript startet, das die Registerkarte öffnet, weil Firefox nur Skripte für Hintergrundskripte unterstützt. - in Safari wird die
service_workerEigenschaft verwendet, und ein Service Worker startet, der die Registerkarte öffnet, weil Safari Service Worker für Hintergrundskripte priorisiert.
Beispiele
"background": {
"scripts": ["jquery.js", "my-background.js"]
}
Zwei Hintergrund-Skripte laden.
"background": {
"page": "my-background.html"
}
Eine benutzerdefinierte Hintergrundseite laden.
Browser-Kompatibilität
Loading…