a标签打开新页面sessionStorage丢失

最近突然市场反馈用户登录后点击链接提示重新登录,检查后发现是sessionStorage丢失,原代码是这样的:

<a target="_blank" href="www.XXXXX.com" ></a>

首先先说一下seeionStorage:
sessionStorage作用范围:只存在于当前会话页面,当会话结束后,数据也随之销毁,在不同的浏览器窗口中共享。也就是存在于当前浏览器页面,页面关闭,数据也会删除。(注意:通过鼠标右键打开的新标签无法共享sessionStorage)

经过各种查资料发现:谷歌、火狐等浏览器在之前是 当浏览器窗口没有关闭时,窗口内同域网站可以共享此数据(同源浏览器多个窗口不共享),当页面全部关闭或窗口关闭后,sessionStorage数据会被摧毁,所以你用a标签跳转还是js跳转都会共享sessionStorage。
但是现在他们把sessionStorage设置为正经的单页面使用。
说正经的到底怎么改才能还跟以前一样,同一个窗口公用sessionStorage呢其实很简单:

**只需要将a标签中添加 rel=“opener” **就能解决

**只需要将a标签中添加 rel=“opener” **就能解决

**只需要将a标签中添加 rel=“opener” **就能解决

<a target="_blank" href="www.XXXXX.com" rel="opener"></a>

这样就好了

还可以使用js
window.open()

或者干脆就换存贮方式

好了就介绍这么多

    原文作者:code_game_
    原文地址: https://blog.csdn.net/code_game_/article/details/115614651
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞