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

View in English Always switch to English

ServiceWorkerContainer: message-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2018 browserübergreifend verfügbar.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Das message-Ereignis wird auf einer Seite, die von einem Service Worker gesteuert wird, verwendet, um Nachrichten vom Service Worker zu empfangen.

Dieses Ereignis kann nicht abgebrochen werden und wird nicht an übergeordnete Elemente weitergegeben.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

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

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
onmessage = (event) => { }

Ereignistyp

Ein MessageEvent. Erbt von Event.

Event MessageEvent

Beispiele

In diesem Beispiel ruft der Service Worker die ID des Clients aus einem fetch-Ereignis ab und sendet ihm anschließend mit Client.postMessage eine Nachricht:

js
// service-worker.js
async function messageClient(clientId) {
  const client = await clients.get(clientId);
  client.postMessage("Hi client!");
}

addEventListener("fetch", (event) => {
  messageClient(event.clientId);
  event.respondWith(() => {
    // …
  });
});

Der Client kann die Nachricht empfangen, indem er auf das message-Ereignis lauscht:

js
// main.js
navigator.serviceWorker.addEventListener("message", (message) => {
  console.log(message);
});

Alternativ kann der Client die Nachricht mit dem onmessage-Event-Handler empfangen. Beachten Sie jedoch, dass dadurch andere mit onmessage hinzugefügte Event-Listener ersetzt werden, sofern vorhanden:

js
// main.js
navigator.serviceWorker.onmessage = (message) => {
  console.log(message);
};

Spezifikationen

Spezifikation
Service Workers Nightly
# dom-serviceworkercontainer-onmessage

Browser-Kompatibilität

Siehe auch