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

时间:2015-11-17 23:51:41

标签: javascript session-cookies session-state url-redirection

我有一个方案可以阻止浏览器的多个打开的标签页中的同一个网站。我的想法是当用户第一次从浏览器打开网站时,没关系,当用户生成新的标签页或外部链接再次打开同一个网站时,我们应该将其重定向到已打开的网站。 我不知道如何实施。我能提供一些线索吗?感谢。

2 个答案:

答案 0 :(得分:1)

也许使用本地存储。

Window.onload=function(){

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

window.close();

}else{

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

}

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

答案 1 :(得分: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())