https://zh.javascript.info/localstorage 文档上写着一条规则:
sessionStorage 数据在页面刷新后仍然保留,但在关闭/重新打开浏览器标签页后不会被保留。
我测试的结果是:关闭窗口数据确实会自动清空,但是关闭浏览器标签并不会
https://zh.javascript.info/localstorage 文档有实例可供测试
1
trytodoyourbest 233 天前
之前遇到鼠标打开新标签页 sessionStorage 不会有,但是 window.open()打开新的标签会被继承
|
2
Aruok 233 天前
因为有的浏览器具有 "恢复关闭的标签" 功能,可能会使得 sessionStorage 的数据在标签被关闭后仍然可以恢复.
|
3
gucheen 233 天前
你不是会是浏览器的恢复标签页这个功能重新打开的页面吧?这是 feature
类似的恢复标签页的功能也会同时恢复 sessionStorage 具体原因自行查阅相关浏览器的开发文档 |
4
csh1617487191 OP 并没有用浏览器的快捷键恢复关闭的标签页,只是手动关闭当前标签页,再把复制的 url 重新打开,sessionStorage 数据依然保留,https://zh.javascript.info/localstorage 文档有实例可供测试
|
5
gucheen 233 天前 1
没有这个问题,建议你把你用的什么浏览器,怎么操作的,录屏一下,没准你就找到了浏览器的 bug ,可以去提 issue 了
|
6
EJW 233 天前 1
@csh1617487191 4
我没有复现你这个问题 |
7
csh1617487191 OP 不好意思 耽误大家时间了,是我的操作问题,复制了当前的标签页,然后再关闭之前的浏览器标签才会出现这个问题
|
8
thinkershare 233 天前
在新标签或窗口打开一个页面时会复制顶级浏览会话的上下文作为新会话的上下文,这点和 session cookie 的运行方式不同
|