ExtendableMessageEvent

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

Hinweis: Diese Funktion ist nur in Service Workers verfügbar.

Das ExtendableMessageEvent Interface der Service Worker API repräsentiert das Ereignisobjekt eines message Ereignisses, das auf einem Service Worker ausgelöst wird (wenn eine Nachricht auf dem ServiceWorkerGlobalScope aus einem anderen Kontext empfangen wird) – es verlängert die Lebensdauer solcher Ereignisse.

Dieses Interface erbt vom ExtendableEvent Interface.

Event ExtendableEvent ExtendableMessageEvent

Konstruktor

ExtendableMessageEvent()

Erstellt eine neue ExtendableMessageEvent Objektinstanz.

Instanzeigenschaften

Erbt Eigenschaften von seinem Elternteil, ExtendableEvent.

ExtendableMessageEvent.data Schreibgeschützt

Gibt die Daten des Ereignisses zurück. Es kann sich um jeden Datentyp handeln. Wenn im messageerror Ereignis ausgelöst, wird die Eigenschaft null sein.

ExtendableMessageEvent.origin Schreibgeschützt

Gibt den Ursprung des Client zurück, der die Nachricht gesendet hat.

ExtendableMessageEvent.lastEventId Schreibgeschützt

Repräsentiert bei server-sent events die letzte Ereignis-ID der Ereignisquelle.

ExtendableMessageEvent.source Schreibgeschützt

Gibt eine Referenz des Client Objekts zurück, das die Nachricht gesendet hat.

ExtendableMessageEvent.ports Schreibgeschützt

Gibt das Array zurück, das die MessagePort Objekte repräsentiert, die die Ports des zugehörigen Nachrichtenkanals darstellen.

Instanzmethoden

Erbt Methoden von seinem Elternteil, ExtendableEvent.

Beispiele

Im untenstehenden Beispiel erhält eine Seite eine Referenz auf das ServiceWorker Objekt über ServiceWorkerRegistration.active und ruft dann seine postMessage() Funktion auf.

js
// in the page being controlled
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 die Nachricht empfangen, indem er auf das message Ereignis hört:

js
// in the service worker
addEventListener("message", (event) => {
  // event is an ExtendableMessageEvent object
  console.log(`The client sent me a message: ${event.data}`);

  event.source.postMessage("Hi client");
});

Spezifikationen

Specification
Service Workers
# extendablemessageevent-interface

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
ExtendableMessageEvent
ExtendableMessageEvent() constructor
data
lastEventId
origin
ports
source

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch