浏览器中两个无关tab页之间的通信,一直都是比较经典的问题。下面就使用一种比较简单的方法,利用storage 和 message 的事件分发 和 事件监听来完成通信。
两个tab页面之间要进行通信,还要借助iframe进行中转消息,让原本连个无关的页面 tabA 和 tabB 进行消息的发送。
iframeA 嵌入到 tabA 中,其src 指向 bridge.html, 然后 tabB 页面也嵌入iframeB ,src 也指向bridge.html,
tabB 发送消息postMessage 到iframeB,在tabB中可以通过iframeB.contentWindow 来获取iframeB 中的window 对象;在iframeB中触发message 事件后,完成与iframeA进行通信,
然后iframeA以同样的方式发送给tabA,完成一次页面通信。tabB ----》 iframeB -----》iframeA ----》tabA;
tabB.html:
tabA.html
bridge.html