BroadcastChannel: messageerror 事件

基线 2022

新可用

2022 年 3 月,此功能可在所有最新的设备和浏览器版本中使用。此功能可能无法在较旧的设备或浏览器中使用。

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

当无法反序列化的消息到达通道时,BroadcastChannel 接口的 messageerror 事件就会触发。

语法

在像 addEventListener() 这样的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("messageerror", (event) => { })
onmessageerror = (event) => { }

事件类型

事件属性

除了下面列出的属性外,父接口 Event 的属性也可以使用。

data 只读

消息发射器发送的数据。

origin 只读

表示消息发射器来源的字符串。

lastEventId 只读

表示事件唯一 ID 的字符串。

source 只读

消息事件源,可以是 WindowProxyMessagePort 或表示消息发射器的 ServiceWorker 对象。

ports 只读

一个 MessagePort 对象数组,表示消息正在通过的通道关联的端口(在适当的情况下,例如在通道消息传递或将消息发送到共享工作器时)。

示例

此代码使用 addEventListener() 监听消息和错误

js
const channel = new BroadcastChannel("example-channel");

channel.addEventListener("message", (event) => {
  received.textContent = event.data;
});

channel.addEventListener("messageerror", (event) => {
  console.error(event);
});

相同的方法,但使用 onmessageonmessageerror 事件处理程序属性

js
const channel = new BroadcastChannel("example-channel");

channel.onmessage = (event) => {
  received.textContent = event.data;
};

channel.onmessageerror = (event) => {
  console.log(event);
};

规范

规范
HTML 标准
# event-messageerror
HTML 标准
# handler-broadcastchannel-onmessageerror

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅