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.
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.
Specifications
| Specification | Status | Comment |
|---|---|---|
| HTML Living Standard The definition of 'BroadcastChannel' in that specification. |
Living Standard | Initial definition. |
Browser compatibility
| Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | 54 | ? | 38 | No | 41 | No |
BroadcastChannel() constructor | 54 | ? | 38 | No | 41 | No |
name | 54 | ? | 38 | No | 41 | No |
onmessage | 54 | ? | 38 | No | 41 | No |
onmessageerror | 60 | ? | 57 | No | 47 | No |
close | 54 | ? | 38 | No | 41 | No |
postMessage | 54 | ? | 38 | No | 41 | No |
| Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | Opera Android | iOS Safari | Samsung Internet |
|---|---|---|---|---|---|---|---|
| Basic support | 54 | 54 | ? | ? | 41 | No | ? |
BroadcastChannel() constructor | 54 | 54 | ? | ? | 41 | No | ? |
name | 54 | 54 | ? | ? | 41 | No | ? |
onmessage | 54 | 54 | ? | ? | 41 | No | ? |
onmessageerror | 60 | 60 | ? | ? | 47 | No | ? |
close | 54 | 54 | ? | ? | 41 | No | ? |
postMessage | 54 | 54 | ? | ? | 41 | No | ? |
See also
- Another, more heavyweight, way of communicating between browser contexts:
ServiceWorker. - Broadcast Channel API overview

