BroadcastChannel:postMessage() 方法

Baseline 已广泛支持

此特性已经十分成熟,可在许多设备和浏览器版本上使用。自 2022 年 3 月起,它已在各浏览器中可用。

注意:此功能在 Web Workers 中可用。

postMessage() 方法是 BroadcastChannel 接口的一个方法,用于将任何类型的 Object 消息发送给具有相同 的任何 浏览上下文 中的每个侦听器。消息将作为 message 事件传输,该事件的目标是绑定到该通道的每个 BroadcastChannel

语法

js
postMessage(message)

参数

message

要发送到其他窗口的数据。数据使用 结构化克隆算法 进行序列化。这意味着您可以安全地将各种数据对象传递到目标窗口,而无需自行序列化它们。

注意: 可以相互发送消息的执行上下文可能不在同一个 代理集群 中,因此无法共享内存。 SharedArrayBuffer 对象,或由其支持的缓冲区视图,无法跨代理集群进行发布。尝试这样做将在接收端生成一个包含 DataCloneError DOMExceptionmessageerror 事件。

返回值

无。

异常

InvalidStateError DOMException

如果 BroadcastChannel 已关闭,则会抛出此异常。

DataCloneError DOMException

如果输入数据的任何部分不可序列化,则会抛出此异常。

规范

规范
HTML
# dom-broadcastchannel-postmessage-dev

浏览器兼容性

另见