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) => { }
事件类型
一个 MessageEvent
。继承自 Event
。
事件属性
除了下面列出的属性之外,还可以使用父接口 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);
};
规范
Specification |
---|
HTML Standard # event-messageerror |
HTML Standard # handler-broadcastchannel-onmessageerror |
浏览器兼容性
BCD tables only load in the browser
参见
- 相关事件:
message
。