BroadcastChannel
BroadcastChannel
接口代理了一个命名频道,可以让指定 origin 下的任意 browsing context 来订阅它。它允许同源的不同浏览器窗口,Tab 页,frame 或者 iframe 下的不同文档之间相互通信。通过触发一个 message
事件,消息可以广播到所有监听了该频道的 BroadcastChannel
对象。
备注: 此特性在 Web Worker 中可用
构造函数
BroadcastChannel()
-
创建一个链接到命名频道的对象。
属性
该接口会从它的父级 EventTarget
继承属性。
BroadcastChannel.name
-
频道名称,返回
DOMString
。
事件处理程序
BroadcastChannel.onmessage
-
事件处理器,用于定义当该对象上触发了
message
事件时要执行的函数。 BroadcastChannel.onmessageerror
-
事件处理器,用于定义当该对象上触发了类型为
MessageError
的MessageEvent
事件时要执行的函数。当接收到一条无法反序列化的消息时会触发此事件。
方法
该接口会从它的父级 EventTarget
继承方法。
BroadcastChannel.postMessage()
-
向所有监听了相同频道的
BroadcastChannel
对象发送一条消息,消息内容可以是任意类型的数据。 BroadcastChannel.close()
-
关闭频道对象,告诉它不要再接收新的消息,并允许它最终被垃圾回收。
事件
message
-
当频道收到一条消息时触发。 也可以使用
onmessage
属性访问。 messageerror
-
当频道收到一条无法反序列化的消息时触发。 也可以使用
onmessageerror
属性访问。
规范
Specification |
---|
HTML Standard # broadcasting-to-other-browsing-contexts |
浏览器兼容性
BCD tables only load in the browser
另见
- 一种在不同浏览器上下文之间通信的重量级方案:
ServiceWorker
。 - Broadcast Channel API overview