postMessage
允许窗口之间相互通信,无论它们来自什么源(可以不同源)
发送消息
将消息发送给 win 窗口:win.postMessage(data, targetOrigin)
接收消息
在目标窗口添加 message 事件监听器
window.addEventListener("message", function (event) {
if (event.origin != 'xxx') {
// 来自未知的源的内容,忽略它
return
}
alert("received: " + event.data)
// 可以使用 event.source.postMessage (...) 回发消息
})BroadcastChannel
功能更全地交换信息:Broadcast Channel API
可以实现同源下浏览器不同窗口,Tab 页,frame 或者 iframe 下的 浏览器上下文 (通常是同一个网站下不同的页面) 之间的相互通讯