beforeunloadKullanı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;
})
liveYöntem ile değil çalışır submitEğ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ı submitve clickolaylarına kaydederek ve beforeunloadbirkaç saniyeden daha uzun bir süre sonra olup olmadığını kontrol ederek bunu düzeltebilirsiniz .