ServiceWorkerGlobalScope: messageerror-Ereignis
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist nur verfügbar in Service Workers.
Das messageerror
-Ereignis des ServiceWorkerGlobalScope
-Interfaces tritt auf, wenn eingehende Nachrichten nicht deserialisiert werden können.
Dieses Ereignis ist nicht abbruchfähig und wird nicht weitergeleitet.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder legen Sie eine Ereignisbehandlungseigenschaft fest.
addEventListener("messageerror", (event) => {});
onmessageerror = (event) => {};
Ereignistyp
Ein ExtendableMessageEvent
. Erbt von ExtendableEvent
.
Ereigniseigenschaften
Erbt Eigenschaften von seinem Elternteil, ExtendableEvent
.
ExtendableMessageEvent.data
Nur lesbar-
Gibt die Daten des Ereignisses zurück. Es kann sich um jeden Datentyp handeln. Wird es im
messageerror
-Ereignis ausgelöst, ist die Eigenschaftnull
. ExtendableMessageEvent.origin
Nur lesbar-
Gibt den Ursprung des
Client
zurück, der die Nachricht gesendet hat. ExtendableMessageEvent.lastEventId
Nur lesbar-
Repräsentiert bei Server-Sent Events die letzte Ereignis-ID der Ereignisquelle.
ExtendableMessageEvent.source
Nur lesbar-
Gibt eine Referenz zum
Client
-Objekt zurück, das die Nachricht gesendet hat. ExtendableMessageEvent.ports
Nur lesbar-
Gibt das Array zurück, das die
MessagePort
-Objekte enthält, die die Ports des zugehörigen Nachrichtenkanals repräsentieren.
Beispiele
Im folgenden Beispiel erhält eine Seite einen Zugriff auf das ServiceWorker
-Objekt über ServiceWorkerRegistration.active
und ruft dann die 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 Nachrichtendeserialisierung hören, 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 auf den Fehler bei der Nachrichtendeserialisierung mit onmessageerror
hören:
// service-worker.js
self.onmessageerror = (event) => {
// event is an ExtendableMessageEvent object
console.error("Message deserialization failed");
};
Spezifikationen
Specification |
---|
Service Workers # eventdef-serviceworkerglobalscope-messageerror |
Service Workers # dom-serviceworkerglobalscope-onmessageerror |
Browser-Kompatibilität
BCD tables only load in the browser