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