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 gebubbelt.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("messageerror", (event) => { })
onmessageerror = (event) => { }
Ereignistyp
Ein ExtendableMessageEvent. Erbt von ExtendableEvent.
Beispiele
Im folgenden Beispiel erhält eine Seite einen Verweis auf das ServiceWorker-Objekt über ServiceWorkerRegistration.active und ruft dann 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 den Fehler bei der Deserialisierung der Nachricht reagieren, indem er das messageerror-Ereignis abhört:
// service-worker.js
self.addEventListener("messageerror", (event) => {
// event is an ExtendableMessageEvent object
console.error("Message deserialization failed");
});
Alternativ kann das Skript den Fehler bei der Deserialisierung der Nachricht unter Verwendung von onmessageerror abhören:
// 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> |