Chrome和Firefox之间的会话存储行为有什么不同吗?

时间:2016-06-20 12:22:32

标签: javascript google-chrome firefox session-storage

我发现chrome和firefox在会话存储方面有所不同。我不知道这是不是我做错了,或者这是否是他们每个人的行为。

情况:我需要通过选项卡而不是窗口来处理会话存储。在Firefox中我得到了这个结果,但不是在chrome中。这是我用来模拟情况的Plunker:plunker

if(!($scope.fooBarKey = sessionStorage.getItem('fooBarKey'))) {
  $scope.fooBarKey = Math.floor(Math.random() * 900000) + 100000;
  sessionStorage.setItem('fooBarKey', $scope.fooBarKey);
}

感谢您的聆听

Obs:回复charlietfl提出的问题

如果您在chrome上的3个选项卡中打开我的Plunker,则保存和恢复的值(对于每个选项卡)是相同的。如果在firefox上打开3个选项卡,则保存和恢复的值(对于每个选项卡)是不同的

1 个答案:

答案 0 :(得分:1)

经过一番研究并在工作中向一些聪明人寻求帮助后,我开始明白我做错了什么。

事实上,每个chrome会话都有自己的sessionStorage。问题是我复制标签而不是打开新标签。复制选项卡的chrome使用window.open并生成一个子选项卡,该选项卡共享其父级的所有信息,包括sessionStorage。