web api event
BroadcastChannel: message event
Available in 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.
addEventListener("message", (event) => { })
onmessage = (event) => { }
Event type
A MessageEvent. Inherits from Event.
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
<h1>Sender</h1>
<label for="message">Type a message to broadcast:</label><br />
<textarea id="message" name="message" rows="1" cols="40">Hello</textarea>
<button id="broadcast-message" type="button">Broadcast message</button>
body {
border: 1px solid black;
padding: 0.5rem;
height: 150px;
font-family: "Fira Sans", sans-serif;
}
h1 {
font:
1.6em "Fira Sans",
sans-serif;
margin-bottom: 1rem;
}
textarea {
padding: 0.2rem;
}
label,
br {
margin: 0.5rem 0;
}
button {
vertical-align: top;
height: 1.5rem;
}
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
<h1>Receiver 1</h1>
<div id="received"></div>
body {
border: 1px solid black;
padding: 0.5rem;
height: 100px;
font-family: "Fira Sans", sans-serif;
}
h1 {
font:
1.6em "Fira Sans",
sans-serif;
margin-bottom: 1rem;
}
const channel = new BroadcastChannel("example-channel");
channel.addEventListener("message", (event) => {
received.textContent = event.data;
});
Receiver 2
<h1>Receiver 2</h1>
<div id="received"></div>
body {
border: 1px solid black;
padding: 0.5rem;
height: 100px;
font-family: "Fira Sans", sans-serif;
}
h1 {
font:
1.6em "Fira Sans",
sans-serif;
margin-bottom: 1rem;
}
const channel = new BroadcastChannel("example-channel");
channel.addEventListener("message", (event) => {
received.textContent = event.data;
});
Result
Interactive exampleOpen the canonical MDN source to run this embedded demo.
Interactive exampleOpen the canonical MDN source to run this embedded demo.
Interactive exampleOpen the canonical MDN source to run this embedded demo.
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.
See also
- Related events:
messageerror.