← 返回首页
前端sessionStorage存储范围总结
发表时间:2023-12-04 15:47:20
前端sessionStorage存储范围总结

前端sessionStorage存储范围总结

1.超链接跳转

href页面跳转,不打开新窗口,新页面和原有页面属于同一个session。

<!--href页面跳转,不打开新窗口。-->
<a href="new.html">新页面</a>

2.超链接打开新窗口

href添加了target='_blank'属性,打开新窗口。分以下两种情形:

1).target='_blank'

href添加了target='_blank'属性,因为打开的新窗口,所以新页面和原有页面不属于同一个session; 注意:最新的浏览器版本都默认rel='noopener'

<!--href页面跳转,打开新窗口。-->
<a href="new.html" target='_blank'>新页面</a>

2).target='_blank' 和rel='opener'

href添加了target='_blank'和rel='opener'属性,因为打开的新窗口,所以新页面和原有页面虽然不属于同一个session,但是新页面会复制原有页面的session属性;但是修改新页面的session属性值,不会影响原页面里的session。

<!--href页面跳转,打开新窗口, 但是添加了ref='opener'-->
<a href="new.html" target='_blank' rel='opener'>新页面</a>

3.window.open打开新窗口

使用window.open打开新页面,因为是打开的新窗口,所以新页面和原有页面虽然不属于同一个session,但是新页面会复制原有页面的session属性;但是修改新页面的session属性值,不会影响原页面里的session。

window.open('new.html');

4.复制地址栏URL手工打开新标签

手工打开新标签,也属于打开的新窗口,所以新页面和原有页面不属于同一个session;

5.\$router.push和\$router.replace

由于\$router.push和\$router.replace都不会打开新窗口,因此新页面(路由)和原页面(路由)属于同一个session;

小结

本质上讲,浏览器只要打开新窗口就是新会话,那么新窗口是否会复制原有窗口的会话(session),取决于其具体的打开方式。