最近突然市场反馈用户登录后点击链接提示重新登录,检查后发现是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()
或者干脆就换存贮方式
好了就介绍这么多