赞
踩
以下的讨论是以同源为前提。(同源和同站是有区别的,同源要求更为严格)
不是所有的sessionStorage都能共享。
1. 第一种情况
浏览器中打开A页面,再通过A页面打开新的标签页B页面,此时A、B两个页面的sessionStorage是“共享”的。这里的共享指的是B页面会把A页面的的 sessionStorage 拷贝一份,作为B页面 的初始缓存值,此时改变B页面的session,A页面并不受影响。即不同 Tab 之间,session读写操作独立,互不影响。
// 之前通过两种方式打开新标签页都可以共享session
window.open(‘xxx’)
<a href="xxx" target="_blank"> </a>
//但是现在浏览器把sessionStorage设置为正经的单页面使用,需要在a标签中添加 rel=“opener”,才能实现共享,或者直接用js打开页面window.open()
<a href="xxx" target="_blank" rel="opener"> </a>
2. 第二种情况
浏览器中打开A页面,然后手动新开一个标签页,在新的标签页中打开B页面,此时A、B两个页面的sessionStorage是不“共享”,即B页面不会继承A页面session作为初始值。
新开一个标签页总是会初始化一个session,即使是同一个网站。
同源状态下,不同标签页之间均可读写,相互影响
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。