赞
踩
首先,先理解下一个页面的sessionStorage是怎么回事。
答:在。
答:不在。
打开多个相同的 URL 的 Tabs 页面,会创建各自的
sessionStorage
。
答:在。
页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。
好了,回到问题本身,“多tab之间的sessionStorage能不能直接共享访问?”,不要一杆子打死就说no,这个问题的答案分多钟情况。
答:不能。
这里又分多种情况:
以下A、B都是同一个域名下面的,以“window.sessionStorage.setItem("这是第一个页面","123")”这个sessionStorage值为例子来讲。
通过a标签打开与window.open一样
<a href="./B.html" target="_block">这是跳转B页面的a标签</a>
答:B页面能访问到A页面的sessionStorage值。
由上情况又引出一个新问题,B页面到底是直接共享访问A页面的sessionStorage呢?还是复制了一份A页面的sessionStorage放到B页面呢?
探索过程:我们在A页面执行一遍window.sessionStorage.setItem("这是第一个页面","456"),将sessionStorage的值进行修改,我们可以看到A页面的sessionStorage已经发生改变,而在A页面sessionstorage值还是123时通过window.open打开的B页面sessionstorage值还是123
答:B页面不能复制访问到A页面的sessionStorage值。
综合以上情况,我们得出一个结论:
不同域名的sessionStorage不可以共享,同域名多窗口之间sessionStorage不可以共享状态!!!
但是在某些特定场景下:在本页面中以新页签或窗口打开的同源页面会
“
复制”
之前页面的sessionStorage。但也仅仅是复制,A页面修改了sessionStorage的话,已打开的B页面不同跟着更新sessionStorage值,除非你再在A页面新打开一个B页面。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。