Используя javascript с alerify, закройте вкладку, если страница обновлена ​​/ перезагружена - PullRequest
0 голосов
/ 18 июня 2019

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