Window: message event

Baseline
Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2017.

>

The message event is fired on a Window object when the window receives a message, for example from a call to Window.postMessage() from another browsing context.

This event is not cancellable and does not bubble.

Syntax

Use the event name in addEventListener():

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

Alternatively, assign to the event handler property of the interface:

js
onmessage = (event) => { }

Event type

A MessageEvent. Inherits from Event.

Event MessageEvent

Examples

Suppose a script sends a message to a different browsing context, such as another <iframe>, using code like this:

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);
});

The receiver can listen for the message using addEventListener() with code like this:

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

Alternatively the listener could use the onmessage event handler property (but note that this replaces other event listeners added using onmessage, if any):

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

Specifications

Specification
HTML>
# event-message>
HTML>
# handler-window-onmessage>

Browser compatibility

See also