浏览器跨标签页通信
本地存储 localstorage
1 | // 监听storage的变化 |
频道广播 BroadcastChannel
1 | // 在需要通信的页面创建名称相同的频道new BroadcastChannel("名称"); |
postMessage
首先需要拿到目标窗口的 window 对象。一般用于<iframe>
1 | otherWindow.postMessage(message, targetOrigin, [transfer]); |
otherWindow:目标窗口(你想发送跨域消息的那个窗口),例如:iframe.contentWindow
message:将要发送的数据
targetOrigin:目标窗口的地址(URL),或者字符串’*‘表示无限制、任何 URL 都允许发送
transfer:是一串和 message 同时传递的 Transferable 对象
WebSocket
占用服务器资源,没必要