beforeunload
Kullanıcı herhangi bir nedenle sayfanızı bıraktığı zaman olay ateşler.
Örneğin, kullanıcı bir form gönderirse, bir bağlantıya tıklarsa, pencereyi (veya sekmeyi) kapatırsa veya adres çubuğunu, arama kutusunu veya bir yer imini kullanarak yeni bir sayfaya giderse tetiklenecektir.
Aşağıdaki kodla form gönderimlerini ve köprüleri (diğer çerçeveler dışında) hariç tutabilirsiniz:
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;
})
1.7'den daha eski jQuery sürümleri için şunu deneyin:
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
Yöntem ile değil çalışır submit
Eğer yeni bir form eklemek eğer öyleyse, siz de ona işleyicisi bağlamak gerekir, olay.
Farklı bir olay işleyicisi göndermeyi veya navigasyonu iptal ederse, pencere daha sonra gerçekten kapatılırsa onay istemini kaybedeceğinizi unutmayın. Zamanı submit
ve click
olaylarına kaydederek ve beforeunload
birkaç saniyeden daha uzun bir süre sonra olup olmadığını kontrol ederek bunu düzeltebilirsiniz .