Javascript 在新选项卡上打开链接时,会话存储将被清除,但在同一选项卡上打开链接时,会话存储将被保留。为什么?

Javascript 在新选项卡上打开链接时,会话存储将被清除,但在同一选项卡上打开链接时,会话存储将被保留。为什么?,javascript,Javascript,我有一个带有target=“\u blank属性的锚定标记,它在一个新选项卡上打开一个HTML页面,该新HTML页面链接到一个JS文件,该文件包含以下代码: if (sessionStorage.getItem("washerebefore") === "yes") { location.href = "url of my main page"; } sessionStorage.setItem("washe

我有一个带有
target=“\u blank
属性的锚定标记,它在一个新选项卡上打开一个HTML页面,该新HTML页面链接到一个JS文件,该文件包含以下代码:

 if (sessionStorage.getItem("washerebefore") === "yes") {
     location.href = "url of my main page";
 }

 sessionStorage.setItem("washerebefore", "yes");
很明显,如果你点击链接,在刷新时打开新的HTML页面,重定向回主页,它就可以正常工作。但只要新的HTML页面是在新选项卡上打开的。如果我删除
target=“\u blank
并在同一选项卡上打开页面,它只会第一次工作,当我第二次单击时,我立即被重定向回,这意味着会话存储未被清除。为什么?

我在某个地方读到,sessionStorage只有在关闭浏览器时才会被清除,但如果是这样,那么为什么在打开新选项卡上的链接时会被清除

更新

我尝试改用localStorage,但它仍然保留,尽管显式删除了localStorage

 if (localStorage.getItem("washerebefore") === "yes") {
     localStorage.removeItem("washerebefore")
     location.href = "url of my main page";
 }

 localStorage.setItem("washerebefore", "yes");

为什么刷新时不删除本地存储?

启动新会话时,会话存储中保存的所有内容都会被删除。浏览器关闭时,会话结束。重新加载页面时,会话将保留。打开新选项卡时会创建一个新会话,这就是为什么会出现此错误。

我明白了。那么,当您被重定向回上一页时,如何确保会话存储被清除?我应该改为使用本地存储并在刷新时清除它吗?我会使用本地存储,因为会话关闭时保存的数据不会被删除。因此,您可以更好地控制要删除并保存在本地存储中的内容。我只是尝试使用
localStorage
,只是在
location.href
之后添加了
removietem
,同样,它只在第一次工作时起作用,然后我会立即被重定向。为什么它没有被移除?我做错什么了吗?你能看看我的更新吗?我知道为什么它没有被移除。问题是,它确实被删除了,但随后又被保存了,但为什么要执行第二个localStorage.setItem呢?由于页面应该被重定向,代码的执行不应该停止在那里吗?据我所知,第二个localStorage.setItem会被执行,因为您退出了if语句。也许可以试试别的说法,尽管我不确定这是否行得通