Щебетать загрузчик поплавок

Я знаю, что этот вопрос старый, но если у кого-то все еще есть проблемы с этим, я нашел решение, которое, похоже, работает для меня,

В основном событие unload запускается после событие beforeunload. Мы можем использовать это, чтобы отменить тайм-аут, созданный в событии beforeunload, изменяя ответ jAndy:

$(function() {
    var beforeUnloadTimeout = 0 ;
    $(window).bind('beforeunload', function()  {
        console.log('beforeunload');
        beforeUnloadTimeout = setTimeout(function() {
            console.log('settimeout function');
            $(document.body).css('background-color', 'red');
        },500);
        return 'are you sure';
    });
    $(window).bind('unload', function() {
        console.log('unload');
        if(typeof beforeUnloadTimeout !=='undefined' && beforeUnloadTimeout != 0)
            clearTimeout(beforeUnloadTimeout);
    });
}); 

EDIT: jsfiddle здесь

140
задан dimo414 30 November 2015 в 05:41
поделиться