先說下,時下兼容性較好的,需求量較大的同瀏覽器同源打開的兩個不同tab標籤頁的通信:
1、window.postMessage
適用情形:A頁面中通過JavaScript的window.open打開B頁面,或者B頁面通過iframe嵌入至A頁面
2、onstorage
適用情形:兩個互不相關的通源tab頁面通信
window.addEventListener("storage", function(e){
......
});
通過window對象偵聽storage事件,會偵聽localStorage對象的變化事件(包括item的添加、修改和刪除)。
3、兩個互不相關的tab頁面通信。
我們巧妙的結合HTML5 postMessage API 和 storage事件實現這兩個毫無關係的tab頁面的連通。爲此,我想到了iframe,通過在這兩個tab頁嵌入同一個iframe頁實現“橋接”,最終完成通信:
tab A -----> iframe A[bridge.html]
|
|
\|/
iframe B[bridge.html] -----> tab B
4、cookie + setInterval()
將要傳遞的信息存儲在cookie中,每隔一定時間讀取cookie信息,即可隨時獲取要傳遞的信息。