2017-04-03 71 views
0

我使用sessionStorage確保每個會話只發生一次操作。但是,如果用戶打開一個新窗口 - sessionStorage不會轉移到新窗口,並且該操作將再次執行。看到我的代碼如下:JavaScript sessionStorage跨標籤頁?

if sessionStorage.alreadyTracked != "1" 
    sessionStorage.alreadyTracked = "1" 
    ... 

有沒有一種簡單的方法來做到這一點適用於所有標籤?也許我需要使用cookie?

回答

1

只要html5存儲去,我會爲你的情況去localStorage。

請參閱下面的差異。

會話存儲:

  • 值只能作爲長期堅持在他們
    存儲在窗口或標籤。
  • 值僅在 創建它們的窗口或選項卡中可見。

本地存儲:

  • 價值觀堅持窗口和瀏覽器的壽命。
  • 數值在每個窗口或標籤上共享,它們在同一個來源運行。

Read more here

1

您可能希望切換到localStorage,因爲sessionStorage綁定到單個選項卡,localStorage不是。

0

如果你與靶向僅FF /鉻OK,你可能也想看看在Broadcast Channel API

廣播信道API允許瀏覽上下文之間的簡單通信(即窗口,標籤,框架或iframe)具有相同的來源(通常是來自同一網站的頁面)。