Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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.

js
addEventListener("messageerror", (event) => { })

onmessageerror = (event) => { }

Ereignistyp

Ein ExtendableMessageEvent. Erbt von ExtendableEvent.

Event ExtendableEvent ExtendableMessageEvent

Beispiele

Im folgenden Beispiel erhält eine Seite einen Verweis auf das ServiceWorker-Objekt über ServiceWorkerRegistration.active und ruft dann dessen postMessage()-Funktion auf.

js
// 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:

js
// 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:

js
// 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

Browser-Kompatibilität

Siehe auch