a标签或者使用target="_blank"打开新页面,新页面的sessionStorage丢失


最简单的解决办法 - a标签添加属性 rel="opener"

Chrome对于a标签默认添加了noopener属性,所以通过a标签跳转,会丢失新页面的控制权,sessionStorage自然也就丢失了,我们只需要在a标签上加上 rel="opener" 就行了。

在Chrome浏览器89版本前,当前会话页面指的是当浏览器窗口没有关闭时,窗口内同域网站可以共享此数据(同源浏览器多个窗口不共享),当页面全部关闭或窗口关闭后,sessionStorage数据会被摧毁,所以你用a标签跳转还是js跳转都会共享sessionStorage。

在2021年3月初Chrome浏览器进行了批量更新,更新到89版本后,通过a标签target="_blank"跳转到新页面时sessionStorage就会丢失。Chrome这一更新可能会导致很多网站的sessionStorage丢失。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM