beforeunload
Подія спрацьовує щоразу , коли користувач залишає сторінку який - небудь причини.
Наприклад, він буде запущений, якщо користувач подає форму, натисне посилання, закриє вікно (або вкладку) або перейде на нову сторінку, використовуючи адресний рядок, поле пошуку або закладку.
Ви можете виключити подання форми та гіперпосилання (крім інших кадрів) із таким кодом:
var inFormOrLink;
$('a').on('click', function() { inFormOrLink = true; });
$('form').on('submit', function() { inFormOrLink = true; });
$(window).on("beforeunload", function() {
return inFormOrLink ? "Do you really want to close?" : null;
})
Для версій jQuery, старших 1,7, спробуйте:
var inFormOrLink;
$('a').live('click', function() { inFormOrLink = true; });
$('form').bind('submit', function() { inFormOrLink = true; });
$(window).bind("beforeunload", function() {
return inFormOrLink ? "Do you really want to close?" : null;
})
live
Метод не працює з submit
подією, так що якщо ви додаєте нову форму, вам потрібно зв'язати обробник до нього , а також.
Зауважте, що якщо інший обробник подій скасує подання або навігацію, ви втратите підтвердження, якщо вікно пізніше закриється. Ви можете це виправити, записавши час у подіях submit
та click
події та перевіривши, чи не beforeunload
відбудеться це через пару секунд.