2017-04-03 73 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)具有相同的来源(通常是来自同一网站的页面)。