BroadcastChannel: 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 March 2022.

Note: This feature is available in Web Workers.

The message event of the BroadcastChannel interface fires when a message arrives on that channel.

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

In this example there's a "sender" <iframe> that broadcasts the contents of a <textarea> when the user clicks a button. There are two "receiver" iframes that listen to the broadcast message and write the result into a <div> element.

Sender

js
const channel = new BroadcastChannel("example-channel");
const messageControl = document.querySelector("#message");
const broadcastMessageButton = document.querySelector("#broadcast-message");

broadcastMessageButton.addEventListener("click", () => {
  channel.postMessage(messageControl.value);
});

Receiver 1

js
const channel = new BroadcastChannel("example-channel");
channel.addEventListener("message", (event) => {
  received.textContent = event.data;
});

Receiver 2

js
const channel = new BroadcastChannel("example-channel");
channel.addEventListener("message", (event) => {
  received.textContent = event.data;
});

Result

Specifications

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

Browser compatibility

See also