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 postMessage() method of the BroadcastChannel interface sends a message, which can be of any kind of Object, to each listener in any browsing context with the same origin. The message is transmitted as a message event targeted at each BroadcastChannel bound to the channel.
postMessage(message)
messageData to be sent to the other window. The data is serialized using the structured clone algorithm. This means you can pass a broad variety of data objects safely to the destination window without having to serialize them yourself.
Note: Execution contexts that can message each other may not be in the same agent cluster, and therefore cannot share memory. SharedArrayBuffer objects, or buffer views backed by one, cannot be posted across agent clusters. Trying to do so will generate a messageerror event containing a DataCloneError DOMException on the receiving end.
None.
InvalidStateError DOMException
Thrown if the BroadcastChannel has already been closed.
DataCloneError DOMException
Thrown if any part of the input data is not serializable.
| Specification |
|---|
| HTML> # dom-broadcastchannel-postmessage-dev> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
postMessage |
54 | 79 | 38 | 41 | 15.4 | 54 | 38 | 41 | 15.4 | 6.0 | 54 | 15.4 |
BroadcastChannel, the interface it belongs to.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel/postMessage