关于sessionStorage存储

在浏览器当前tab页上右键复制后的页面中可以携带之前页面的sessionStorage,而复制之前tab页链接地址后打开的页面中没有sessionStorage,这是什么原因。

阅读 3.3k
2 个回答

原则上来说 SessionStorage 在多标签中是不共享的、且关闭标签后就立即清除,因为它是会话级的,而不同标签是不同的会话。

但 Chrome 和 Firefox 额外做了个 Feature(你也可以说是 Bug):

  • 复制标签页(Duplicate Tab)时会拷贝 SessionStorage。
  • 恢复关闭的标签页(Restore Tab)时会恢复之前的 SessionStorage。

需要注意的是拷贝而非共享,复制后的和被复制的标签本质上还是两个会话、两个 SessionStorage,彼此并不能通信。


Safari / IE 则没有此 Feature(或者说 Bug)。

手动复制地址、新建标签页、粘贴并前往的操作则跟上述 Feature/Bug 无关。


附:https://developer.mozilla.org...

打开多个相同的 URL 的 Tabs 页面,会创建各自的 SessionStorage

sessionStorage.setItem是存
sessionStorage.getItem则是取
猜测你缓存了,但是没有取出来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏