ServiceWorkerGlobalScope: messageerror-Ereignis
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist nur in Service Workers verfügbar.
Das messageerror-Ereignis der ServiceWorkerGlobalScope-Schnittstelle tritt auf, wenn eingehende Nachrichten nicht deserialisiert werden können.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergereicht.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("messageerror", (event) => { })
Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:
onmessageerror = (event) => { }
Ereignistyp
Ein ExtendableMessageEvent. Erbt von ExtendableEvent.
Beispiele
Im folgenden Beispiel erhält eine Seite über ServiceWorkerRegistration.active eine Referenz auf das ServiceWorker-Objekt und ruft anschließend dessen postMessage()-Funktion auf.
// main.js
if (navigator.serviceWorker) {
navigator.serviceWorker.register("service-worker.js");
navigator.serviceWorker.addEventListener("message", (event) => {
// event is a MessageEvent object
console.log(`The service worker sent me a message: ${event.data}`);
});
navigator.serviceWorker.ready.then((registration) => {
registration.active.postMessage("Hi service worker");
});
}
Der Service Worker kann auf Deserialisierungsfehler bei Nachrichten reagieren, indem er auf das messageerror-Ereignis lauscht:
// service-worker.js
self.addEventListener("messageerror", (event) => {
// event is an ExtendableMessageEvent object
console.error("Message deserialization failed");
});
Alternativ kann das Skript mit onmessageerror auf Deserialisierungsfehler bei Nachrichten reagieren. Beachten Sie jedoch, dass dadurch gegebenenfalls andere mit onmessageerror hinzugefügte Event-Listener ersetzt werden:
// service-worker.js
self.onmessageerror = (event) => {
// event is an ExtendableMessageEvent object
console.error("Message deserialization failed");
};
Spezifikationen
| Spezifikation |
|---|
| Service Workers Nightly> # eventdef-serviceworkerglobalscope-messageerror> |
| Service Workers Nightly> # dom-serviceworkerglobalscope-onmessageerror> |