此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

BroadcastChannel:messageerror 事件

基线
广泛可用

自 2022年3月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

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

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

语法

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

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

事件类型

一个 MessageEvent。继承自 Event。

Event MessageEvent

事件属性

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

data 只读

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

origin 只读

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

lastEventId 只读

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

source 只读

一个消息事件源,可以是一个用于表示消息发送者的 WindowProxy、MessagePort 或 ServiceWorker 对象。

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);
});

下述代码也实现了相同需求,但使用 onmessage 和 onmessageerror 事件处理器属性:

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

浏览器兼容性

参见