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 methods like addEventListener(), or set an event handler property.

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

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:

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

Specifications

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

Browser compatibility

See also