如何防止同一网站打开多个标签页?

问题描述 投票:-2回答:2

我有一种情况,可以在浏览器的多个打开的标签页中阻止相同的网站。我的想法是,当用户第一次从浏览器打开网站时,这很好,当用户生成新的标签页或外部链接以再次打开同一网站时,我们应该将其重定向到已经打开的网站。我不知道如何执行。我可以提供一些线索吗?谢谢。

javascript session-cookies session-state url-redirection
2个回答
1
投票

也许使用本地存储。

Window.onload=function(){

if(localStorage.getItem('windows')===1){

window.close();

}else{

localStorage.setItem("windows",1);
}

}

Window.onbeforeunload=function(){
localStorage.setItem("windows",0);
}

0
投票

我最近遇到了一个类似的问题,在这个问题上,我不得不防止多个窗口/选项卡在同一个localStorage上运行。

解决方案是使用StorageEvents:每当另一个(!)窗口对此本地存储使用相同的localStorage进行更改时,每个窗口都会收到一个StorageEvent。

因此,诀窍是为localStorage定义一个“虚拟”键,并让每个窗口向该键中写入一些随机值,以使使用同一localStorage的所有其他窗口都接收到StorageEvent:

  window.addEventListener('storage', () => {
    window.alert('another window or tab is working on the same localStorage')
  }, false)

  localStorage.setItem('Sentinel',Math.random())
© www.soinside.com 2019 - 2024. All rights reserved.