我发现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个选项卡,则保存和恢复的值(对于每个选项卡)是不同的
答案 0 :(得分:1)
经过一番研究并在工作中向一些聪明人寻求帮助后,我开始明白我做错了什么。
事实上,每个chrome会话都有自己的sessionStorage。问题是我复制标签而不是打开新标签。复制选项卡的chrome使用window.open并生成一个子选项卡,该选项卡共享其父级的所有信息,包括sessionStorage。