BroadcastChannel:messageerror 事件

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.

备注: 此特性在 Web Worker 中可用。

BroadcastChannel 接口的 messageerror 事件在无法反序列化的消息到达频道时触发。

语法

addEventListener() 等方法中使用事件名称,或设置事件处理器属性。

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

事件类型

事件属性

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

data 只读

由消息发送者发送的数据。

origin 只读

一个表示消息发送者来源的字符串。

lastEventId 只读

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

source 只读

一个消息事件源,可以是一个用于表示消息发送者的 WindowProxyMessagePortServiceWorker 对象。

ports 只读

一个与发送消息(通过频道发送消息或向 SharedWorker 发送消息)的频道相关联的 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);
};

规范

Specification
HTML Standard
# event-messageerror
HTML Standard
# handler-broadcastchannel-onmessageerror

浏览器兼容性

BCD tables only load in the browser

参见