The BroadcastChannel interface represents a named channel that any browsing context of a given origin can subscribe to. It allows communication between different documents (in different windows, tabs, frames or iframes) of the same origin. Messages are broadcasted via a message event fired at all BroadcastChannel objects listening to the channel.
Note: This feature is available in Web Workers.
Constructor
BroadcastChannel()- Creates an object linking to the named channel.
Properties
This interface also inherits properties from its parent, EventTarget.
BroadcastChannel.name- Returns a
DOMString, the name of the channel. -
Event handlers
BroadcastChannel.onmessage- An
EventHandlerproperty that specifies the function to execute when amessageevent is fired on this object. BroadcastChannel.onmessageerror- An
EventHandlercalled when aMessageEventof typeMessageErroris fired—that is, when it receives a message that cannot be deserialized.
Methods
This interface also inherits methods from its parent, EventTarget.
BroadcastChannel.postMessage()- Sends the message, of any type of object, to each
BroadcastChannelobject listening to the same channel. BroadcastChannel.close()- Closes the channel object, indicating it won't get any new messages, and allowing it to be, eventually, garbage collected.
Events
message- Fired when when a message arrives on the channel.
Also available via theonmessageproperty. messageerror- Fired when a message arrives that can't be deserialized.
Also available via theonmessageerrorproperty.
Specifications
| Specification | Status | Comment |
|---|---|---|
| HTML Living Standard The definition of 'BroadcastChannel' in that specification. |
Living Standard | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
BroadcastChannel | Chrome Full support 54 | Edge ? | Firefox Full support 38 | IE No support No | Opera Full support 41 | Safari No support No | WebView Android Full support 54 | Chrome Android Full support 54 | Firefox Android ? | Opera Android Full support 41 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
BroadcastChannel() constructor | Chrome Full support 54 | Edge ? | Firefox Full support 38 | IE No support No | Opera Full support 41 | Safari No support No | WebView Android Full support 54 | Chrome Android Full support 54 | Firefox Android ? | Opera Android Full support 41 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
close | Chrome Full support 54 | Edge ? | Firefox Full support 38 | IE No support No | Opera Full support 41 | Safari No support No | WebView Android Full support 54 | Chrome Android Full support 54 | Firefox Android ? | Opera Android Full support 41 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
message event | Chrome Full support 54 | Edge ? | Firefox Full support 38 | IE No support No | Opera Full support 41 | Safari No support No | WebView Android Full support 54 | Chrome Android Full support 54 | Firefox Android ? | Opera Android Full support 41 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
messageerror event | Chrome Full support 60 | Edge ? | Firefox Full support 57 | IE No support No | Opera Full support 47 | Safari No support No | WebView Android Full support 60 | Chrome Android Full support 60 | Firefox Android ? | Opera Android Full support 47 | Safari iOS No support No | Samsung Internet Android No support No |
name | Chrome Full support 54 | Edge ? | Firefox Full support 38 | IE No support No | Opera Full support 41 | Safari No support No | WebView Android Full support 54 | Chrome Android Full support 54 | Firefox Android ? | Opera Android Full support 41 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
onmessage | Chrome Full support 54 | Edge ? | Firefox Full support 38 | IE No support No | Opera Full support 41 | Safari No support No | WebView Android Full support 54 | Chrome Android Full support 54 | Firefox Android ? | Opera Android Full support 41 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
onmessageerror | Chrome Full support 60 | Edge ? | Firefox Full support 57 | IE No support No | Opera Full support 47 | Safari No support No | WebView Android Full support 60 | Chrome Android Full support 60 | Firefox Android ? | Opera Android Full support 44 | Safari iOS No support No | Samsung Internet Android No support No |
postMessage | Chrome Full support 54 | Edge ? | Firefox Full support 38 | IE No support No | Opera Full support 41 | Safari No support No | WebView Android Full support 54 | Chrome Android Full support 54 | Firefox Android ? | Opera Android Full support 41 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
See also
- Another, more heavyweight, way of communicating between browser contexts:
ServiceWorker. - Broadcast Channel API overview