Window: message event
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 erhält, beispielsweise durch einen Aufruf von Window.postMessage() aus einem anderen Browsing-Kontext.
Dieses Ereignis ist nicht abbrechbar und blubbert nicht.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("message", (event) => { })
onmessage = (event) => { }
Ereignistyp
Ein MessageEvent. Erbt von Event.
Beispiele
Angenommen, ein Skript sendet eine Nachricht an einen anderen Browsing-Kontext, wie ein anderes <iframe>, mit folgendem Code:
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 mithilfe von addEventListener() den Empfang der Nachricht überwachen, mit Code wie diesem:
window.addEventListener("message", (event) => {
console.log(`Received message: ${event.data}`);
});
Alternativ könnte der Zuhörer die onmessage Ereignishandler-Eigenschaft verwenden:
window.onmessage = (event) => {
console.log(`Received message: ${event.data}`);
};
Spezifikationen
| Spezifikation |
|---|
| HTML> # event-message> |
| HTML> # handler-window-onmessage> |
Browser-Kompatibilität
Siehe auch
- Verwandte Ereignisse:
messageerror. Window.postMessage().