我想防止同时打开两个选项卡。我正在使用BroadcastChannel在选项卡之间进行通信。当打开新标签页时,它将发布一条消息,该消息将被第一个标签页接收,然后我开始关闭程序。我使用alertify.js来警告用户该页面将被关闭,并且在用户按下“确定”按钮后,该选项卡将关闭。问题是,如果您尝试重新加载/刷新页面,所有内容都会崩溃,因此如果用户尝试重新加载/刷新页面,我也需要关闭页面。
在这一方面,我肯定被封锁了,我的所有研究都没有为我的问题提供答案
// open a chanel so that multiple tabs communicate between them
const channel = new BroadcastChannel('multipleTabs');
// broadcast a message to all other open tabs
channel.postMessage('killTab');
// listen for broadcasts from other tabs
channel.onmessage = function(e) {
// confirm the broadcast message
if (e.data === 'killTab')
alertify.alert('You opened a second tab, this one will be closed.')
// on click the tab will be closed
.set('onok', function(closeEvent){
window.close();
});
};