message event is fired on a BroadcastChannel object when a message arrives on that channel.

冒泡 No
可取消 No
接口 MessageEvent
事件处理程序特性 onmessage

范例

实时范例

In this example there's a "sender" <iframe> that broadcasts the contents of a <textarea> when the user clicks a button. There are two "receiver" iframes that listen to the broadcast message and write the result into a <div> 元素。

Sender

<h1>Sender</h1>
<label for="message">Type a message to broadcast:</label><br/>
<textarea id="message" name="message" rows="1" cols="40">Hello</textarea>
<button id="broadcast-message" type="button">Broadcast message</button>
					
body {
     border: 1px solid black;
     padding: .5rem;
     height: 150px;
     font-family: "Fira Sans", sans-serif;
}
h1 {
    font: 1.6em "Fira Sans", sans-serif;
    margin-bottom: 1rem;
}
textarea {
    padding: .2rem;
}
label, br {
    margin: .5rem 0;
}
button {
    vertical-align: top;
    height: 1.5rem;
}
					
const channel = new BroadcastChannel('example-channel');
const messageControl = document.querySelector('#message');
const broadcastMessageButton = document.querySelector('#broadcast-message');
broadcastMessageButton.addEventListener('click', () => {
    channel.postMessage(messageControl.value);
})
					

Receiver 1

<h1>Receiver 1</h1>
<div id="received"></div>
					
body {
    border: 1px solid black;
    padding: .5rem;
    height: 100px;
    font-family: "Fira Sans", sans-serif;
}
h1 {
    font: 1.6em "Fira Sans",
    sans-serif; margin-bottom: 1rem;
}
					
const channel = new BroadcastChannel('example-channel');
channel.addEventListener('message', (event) => {
  received.textContent = event.data;
});
					

Receiver 2

<h1>Receiver 2</h1>
<div id="received"></div>
					
body {
    border: 1px solid black;
    padding: .5rem;
    height: 100px;
    font-family: "Fira Sans", sans-serif;
}
h1 {
    font: 1.6em "Fira Sans", sans-serif;
    margin-bottom: 1rem;
}
					
const channel = new BroadcastChannel('example-channel');
channel.addEventListener('message', (event) => {
  received.textContent = event.data;
});
					

结果

规范

规范 状态
HTML 实时标准 实时标准

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
桌面 移动
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
message event Chrome 54 Edge ≤79 Firefox 38 IE No Opera 41 Safari No WebView Android 54 Chrome Android 54 Firefox Android ? Opera Android 41 Safari iOS No Samsung Internet Android 6.0

图例

完整支持

完整支持

不支持

不支持

兼容性未知 ?

兼容性未知

另请参阅

元数据

  • 最后修改: