就是a页面用sessionStorage存储的数据,a在当前标签页跳转到页面b,页面b能拿到sessionStorage存储的数据吗?
是不是只有新页面打开的话才会拿不到sessionStorage存储的数据?
就是a页面用sessionStorage存储的数据,a在当前标签页跳转到页面b,页面b能拿到sessionStorage存储的数据吗?
是不是只有新页面打开的话才会拿不到sessionStorage存储的数据?
个人观察总结:
(以下说的session都是sessionStorage的简称)
即使同一个域名、同一个key名,在不同标签页之间,session不能联动共用。
但是,从一个标签页中,使用target="_blank"的方式跳转到同域名的新标签页面,上一个页面的session就可以带过来。
就好像从一个标签页切换路由,虽然地址路径换了、域名没变的情况下,session都还能存在并可以取到。
但是,从一个标签页种下session后,不关闭页面,地址栏修改不同域名的页面地址并跳转,上个页面的session就没了。特别的,从新地址点击回退,退回到之前的页面地址后,session又保留出来了。这也就是session为什么作为会话存储了,没有杀死该页面或浏览器的情况下,session其实还在,只不过切换了域名地址,因为跨域限制取不到(事实上,控制台Application里也看不到别的域名种的session)
8 回答4.9k 阅读✓ 已解决
6 回答3.6k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.5k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
如果是a标签跳转,不要加target=_blank就没问题
sessionStorage只存在当前tab里,打开新的tab就获取不到了,如果是一直单页面跳转就没问题。