2016-05-05 2 views
1

Мне нужно добавить некоторые коды перед закрытием вкладки/окна браузера или обновить браузер. например, мне нужно отправить результаты деятельности студентов в базу данных и остановить все запущенные таймеры, если это необходимо, а также показать предупреждение для студентов, чтобы показать результаты, что они got.i использовали «beforeunload», но это не работает для меняКак запустить некоторые коды перед закрытием вкладки браузера/windows/refresh с помощью JQuery

$(window).bind('beforeunload', function(e){ 
    $.ajax({ 
     type:'POST', 
     url: 'increaseScore.php', 
     data: {personal_code: "414896521", lScore: 85}, 
     success: function(response) { 
      alert("you have " + response + "Scores, now"); // show scores alert 
     } 
    }).promise().done(function() { 
     clearInterval(); // clear all timers 
    }) 
}) 

Каков способ сделать это, прежде чем закрыть вкладку браузера или перезагрузить браузер? спасибо большое

+0

Аналогичный вопрос - http://stackoverflow.com/questions/291553/is-there-a-way-in-javascript-to-detect-if-the-unload-event-is-caused-via-a- refre – user2947

+0

@ user2947 так, как вы думаете, нет какого-либо способа для запуска кодов перед закрытием браузера? – MojtabaSh

ответ

1

Да, вы можете. Попробуйте это: -

window.addEventListener("beforeunload", function (e) { 
    var confirmationMessage = "\o/"; 

    (e || window.event).returnValue = confirmationMessage; //Gecko + IE 
    return confirmationMessage;       //Webkit, Safari, Chrome 
}); 

Я не пытаюсь его во всех браузерах Или

window.onbeforeunload = function() { 
    return "Do you really want to close?"; 
}; 

Он должен работать тоже.

+0

Спасибо @ user2947, он работает в браузере Chrome и Internet, а также работает на firefox при закрытии страницы/окна, но он не работает на firefox при обновлении страницы, есть ли что-нибудь для этого? – MojtabaSh