ServiceWorkerContainer: messageerror-Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2023 browserübergreifend verfügbar.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Das messageerror-Ereignis wird für den ServiceWorkerContainer ausgelöst, wenn eine eingehende Nachricht, die an den zugehörigen Worker gesendet wurde, nicht deserialisiert werden kann.
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 MessageEvent. Erbt von Event.
Beispiele
In diesem Beispiel ermittelt der Service Worker die ID des Clients aus einem fetch-Ereignis und sendet ihm anschließend mit Client.postMessage eine Nachricht:
// service-worker.js
async function messageClient(clientId) {
const client = await self.clients.get(clientId);
client.postMessage("Hi client!");
}
self.addEventListener("fetch", (event) => {
messageClient(event.clientId);
event.respondWith(() => {
// …
});
});
Der Service Worker kann auf Fehler bei der Deserialisierung der Nachricht reagieren, indem er auf das messageerror-Ereignis lauscht:
// main.js
navigator.serviceWorker.addEventListener("messageerror", (event) => {
console.error("Receive message from service worker failed!");
});
Alternativ kann das Skript mithilfe von onmessageerror auf Fehler bei der Deserialisierung der Nachricht reagieren. Beachten Sie jedoch, dass dadurch gegebenenfalls andere mit onmessageerror hinzugefügte Event-Listener ersetzt werden:
// main.js
navigator.serviceWorker.onmessageerror = (event) => {
console.error("Receive message from service worker failed!");
};
Spezifikationen
| Spezifikation |
|---|
| Service Workers Nightly> # dom-serviceworkerglobalscope-onmessageerror> |