Как запросить подтверждение для отмены браузера / окна после выполнения определенной задачи c? - PullRequest
0 голосов
/ 13 июля 2020

Я хочу, чтобы браузер начал прослушивать отмену окна после нажатия кнопки и удалил прослушиватель после завершения задачи.

$(button).click(function(){
    //listen for clicking cancel button (or reload or go back)    

    //do something
    
    //done

    //stop listening
})

Однако я не могу этого сделать, поскольку это похоже на только определенные задачи c вызывают событие beforeunload. Я пробовал почти все, что связано с window.beforeunload, но, похоже, у меня это не работает. Есть ли еще что-нибудь, что я могу попробовать использовать js jquery chrome/browser API? Большая часть уже запрошенных решений либо устарела, либо не работает. Вот что я уже пробовал!

    //1
    window.addEventListener('beforeunload',()=>{return 'a'})
    window.dispatchEvent(new Event('beforeunload'))
    window.unload(); //with and without this

    //2
    function beforeunload(){
        return "ja";
    }

    if(window.attachEvent){
        window.attachEvent('onbeforeunload', beforeunload);
    }else if(window.addEventListener){
        window.addEventListener('beforeunload', beforeunload, true);
    }

    //3
    function myConfirmation() {
        return 'Are you sure?';
    }
    
    window.onbeforeunload = myConfirmation;

    //4
    $(window).on('beforeunload', function(){
        return 'Are you sure you want to quit?'
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...