ServiceWorkerGlobalScope: messageerror-Ereignis
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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 weitergeleitet.
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
.
Ereigniseigenschaften
Erbt Eigenschaften von seinem Elternteil, ExtendableEvent
.
ExtendableMessageEvent.data
Schreibgeschützt-
Gibt die Daten des Ereignisses zurück. Sie können jeden Datentyp haben. Wenn im
messageerror
-Ereignis ausgelöst, wird die Eigenschaftnull
sein. ExtendableMessageEvent.origin
Schreibgeschützt-
Gibt den Ursprung des
Client
zurück, der die Nachricht gesendet hat. ExtendableMessageEvent.lastEventId
Schreibgeschützt-
Stellt bei servergesendeten Ereignissen die letzte Ereignis-ID der Ereignisquelle dar.
ExtendableMessageEvent.source
Schreibgeschützt-
Gibt eine Referenz auf das
Client
-Objekt zurück, das die Nachricht gesendet hat. ExtendableMessageEvent.ports
Schreibgeschützt-
Gibt das Array zurück, das die
MessagePort
-Objekte enthält, welche die Ports des zugehörigen Nachrichtenkanals darstellen.
Beispiele
Im folgenden Beispiel erhält eine Seite einen Zugriff 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 Deserialisierungsfehler der Nachricht 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 Deserialisierungsfehler der Nachricht mithilfe von 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 |