如何在使用target ="_ blank"/window.open()打开新窗口/选项卡时阻止sessionStorage被继承?

 jrvzx342841 发布于 2023-02-07 09:46

在带有网址http://foo.com/的标签页上,我设置了一个sessionStorage项目,因此 -

sessionStorage.bar="hello";

然后我在同一个域的任何路径上打开一个新窗口 -

window.open("http://foo.com/any/path");

然后在新窗口中我发现 -

sessionStorage.bar === "hello"

是真的.如果我使用带有target ="_ blank"属性的链接打开新窗口,则会发生完全相同的事情.打开新选项卡时也会发生完全相同的事情,而不是新窗口.另一件需要注意的是,这只适用于在打开新窗口之前在sessionStorage上设置的项目.在打开新窗口后,在任一窗口中添加或更改sessionStorage上的任何项目都不会以任何方式影响其他窗口.

我认为sessionStorage应该被限定为单个选项卡/窗口,但显然sessionStorage从另一个窗口打开时会扩展到新的选项卡和窗口.

有办法防止这种情况吗?我可以测试window.opener的存在来检测这样的情况,但是如果可以首先防止它那么会更清洁.

谢谢!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有