sessionStorage存储的数据,当页面跳转时还存在吗?

就是a页面用sessionStorage存储的数据,a在当前标签页跳转到页面b,页面b能拿到sessionStorage存储的数据吗?
是不是只有新页面打开的话才会拿不到sessionStorage存储的数据?

阅读 26.7k
4 个回答

如果是a标签跳转,不要加target=_blank就没问题

sessionStorage只存在当前tab里,打开新的tab就获取不到了,如果是一直单页面跳转就没问题。

个人观察总结:
(以下说的session都是sessionStorage的简称)

即使同一个域名、同一个key名,在不同标签页之间,session不能联动共用。

但是,从一个标签页中,使用target="_blank"的方式跳转到同域名的新标签页面,上一个页面的session就可以带过来。

就好像从一个标签页切换路由,虽然地址路径换了、域名没变的情况下,session都还能存在并可以取到。

但是,从一个标签页种下session后,不关闭页面,地址栏修改不同域名的页面地址并跳转,上个页面的session就没了。特别的,从新地址点击回退,退回到之前的页面地址后,session又保留出来了。这也就是session为什么作为会话存储了,没有杀死该页面或浏览器的情况下,session其实还在,只不过切换了域名地址,因为跨域限制取不到(事实上,控制台Application里也看不到别的域名种的session)

存在,我印象中是与session的生命周期是一样的,只要有一个tab页没关闭,它就活着

测试只要是跳转到相同的域名,sessionStorage 都会存在的,不管是a链接打开新的标签页还是本页面内跳转。sessionStorage都不会消失的

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