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: Dieses Feature ist nur verfügbar in Service Workers.
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.
Konstruktor
ExtendableMessageEvent()
-
Erstellt eine neue
ExtendableMessageEvent
Objektinstanz.
Instanzeigenschaften
Erbt Eigenschaften von seinem Elternteil, ExtendableEvent
.
ExtendableMessageEvent.data
Nur lesbar-
Gibt die Daten des Ereignisses zurück. Es kann sich um jeden Datentyp handeln. Wenn im
messageerror
Ereignis ausgelöst, wird die Eigenschaftnull
sein. 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 des
Client
Objekts zurück, das die Nachricht gesendet hat. ExtendableMessageEvent.ports
Nur lesbar-
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.
// 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:
// 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
BCD tables only load in the browser