Я хочу, чтобы две вкладки не открывались одновременно. Я использую BroadcastChannel для связи между вкладками. Когда новая вкладка открыта, она отправит сообщение, которое будет получено первой вкладкой, а затем я начну процедуру закрытия. Я использую alerttify.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();
});
};