BroadcastChannel - 代表一个可订阅的频道
BroadcastChannel
接口代表一个指定的频道,任何给定的源的浏览上下文可以订阅它。它允许同一个源的不同文档(在不同的窗口, 标签, 框架或内联框架)之间进行通信。通过监听该频道的所有 BroadcastChannel
对象上触发的 message
事件来广播消息。
注意: 此特性在 Web Worker 中可用。
构造函数
BroadcastChannel()
创建一个连接到指定通道的对象。
属性
该接口继承了其父项 EventTarget
的属性。
BroadcastChannel.name
返回 DOMString
,表示频道的名称。
事件处理程序
BroadcastChannel.onmessage
一个 EventHandler
属性,用于指定在该对象上触发 message
事件时要执行的函数。
BroadcastChannel.onmessageerror
一个 MessageEvent
,当触发了 MessageError
类型的 MessageEvent
时调用,也就是当它收到一条不能成为反序列化的消息时触发。
方法
该接口继承了其父项 EventTarget
的方法。
BroadcastChannel.postMessage()
将任何类型对象的消息发送到监听当前频道的每个 BroadcastChannel
对象。
BroadcastChannel.close()
关闭通道对象,指示它不会收到任何新消息,并允许它最终被垃圾收集。
规范
规范 | 状态 | 备注 |
---|---|---|
HTML Living Standard BroadcastChannel 的定义 |
现行的标准 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 54 | 未知 | 38 | 不支持 | 41 | 不支持 |
BroadcastChannel() constructor |
54 | 未知 | 38 | 不支持 | 41 | 不支持 |
name |
54 | 未知 | 38 | 不支持 | 41 | 不支持 |
onmessage |
54 | 未知 | 38 | 不支持 | 41 | 不支持 |
onmessageerror |
60 | 未知 | 57 | 不支持 | 47 | 不支持 |
close |
54 | 未知 | 38 | 不支持 | 41 | 不支持 |
postMessage |
54 | 未知 | 38 | 不支持 | 41 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 54 | 54 | 未知 | 未知 | 未知 | 41 | 不支持 |
BroadcastChannel() constructor |
54 | 54 | 未知 | 未知 | 未知 | 41 | 不支持 |
name |
54 | 54 | 未知 | 未知 | 未知 | 41 | 不支持 |
onmessage |
54 | 54 | 未知 | 未知 | 未知 | 41 | 不支持 |
onmessageerror |
60 | 60 | 未知 | 未知 | 未知 | 47 | 不支持 |
close |
54 | 54 | 未知 | 未知 | 未知 | 41 | 不支持 |
postMessage |
54 | 54 | 未知 | 未知 | 未知 | 41 | 不支持 |
相关链接
- 另一种更重量级的浏览器上下文之间的通信方式:
ServiceWorker
。 - 广播频道 API 概述