BroadcastChannel: message 事件
注意:此功能在 Web Workers 中可用。
BroadcastChannel 接口的 message 事件在通过该通道接收到消息时触发。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("message", (event) => { })
onmessage = (event) => { }
事件类型
一个 MessageEvent。继承自 Event。
事件属性
除了下面列出的属性之外,父接口 Event 的属性也可使用。
data只读-
由消息发送者发送的数据。
origin只读-
一个字符串,表示消息发送者的源。
lastEventId只读-
一个字符串,表示事件的唯一 ID。
source只读-
一个消息事件源,它可以是 WindowProxy、
MessagePort或ServiceWorker对象,用于表示消息的发送者。 ports只读-
一个
MessagePort对象数组,表示消息发送通道(如果适用,例如在通道消息传递或向共享工作者发送消息时)关联的端口。
示例
在此示例中,有一个“发送者” <iframe>,当用户单击按钮时,它会广播 <textarea> 的内容。有两个“接收者” iframe 监听广播消息,并将结果写入 <div> 元素。
发送者
js
const channel = new BroadcastChannel("example-channel");
const messageControl = document.querySelector("#message");
const broadcastMessageButton = document.querySelector("#broadcast-message");
broadcastMessageButton.addEventListener("click", () => {
channel.postMessage(messageControl.value);
});
接收者 1
js
const channel = new BroadcastChannel("example-channel");
channel.addEventListener("message", (event) => {
received.textContent = event.data;
});
接收者 2
js
const channel = new BroadcastChannel("example-channel");
channel.addEventListener("message", (event) => {
received.textContent = event.data;
});
结果
规范
| 规范 |
|---|
| HTML # event-message |
| HTML # handler-broadcastchannel-onmessage |
浏览器兼容性
加载中…
另见
- 相关事件:
messageerror。