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.
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 Eigenschaftnull
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.
// 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