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

View in English Always switch to English

Window: message-Ereignis

Baseline
Weitgehend verfügbar

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

Das message-Ereignis wird auf einem Window-Objekt ausgelöst, wenn das Fenster eine Nachricht empfängt, beispielsweise durch einen Aufruf von Window.postMessage() aus einem anderen Browsing-Kontext.

Dieses Ereignis kann nicht abgebrochen werden und wird nicht nach oben weitergereicht.

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. Es erbt von Event.

Event MessageEvent

Beispiele

Angenommen, ein Skript sendet mit folgendem Code eine Nachricht an einen anderen Browsing-Kontext, beispielsweise an ein anderes <iframe>:

js
const targetFrame = window.top.frames[1];
const targetOrigin = "https://example.org";
const windowMessageButton = document.querySelector("#window-message");

windowMessageButton.addEventListener("click", () => {
  targetFrame.postMessage("hello there", targetOrigin);
});

Der Empfänger kann mit addEventListener() und folgendem Code auf die Nachricht warten:

js
window.addEventListener("message", (event) => {
  console.log(`Received message: ${event.data}`);
});

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

js
window.onmessage = (event) => {
  console.log(`Received message: ${event.data}`);
};

Spezifikationen

Spezifikation
HTML
# event-message
HTML
# handler-window-onmessage

Browser-Kompatibilität

Siehe auch