2010-09-13 18 views
12

Bir sayfanın yüklenip yüklenmeyeceğini soran bir html sayfasının yüklenmesinden önce bir iletişim kutusu açmak istiyorum. Evet seçilirse, boşaltma devam eder ve seçili değilse boşaltma olayı iptal edilir.Sayfa kaldırılmadan önce olay çağrısı

cevap

21

Metni "yes"/"no" olarak ayarlayamazsınız (çoğu tarayıcıda "Tamam"/"İptal" olur), ancak siz ayrıldığınızda (bunu kullanırken dikkatli olun) isteyebilirsiniz. böyle window.onbeforeunload, kullanarak herhangi bir şekilde sayfa: Eğer iyi bir nedeniniz varsa

window.onbeforeunload = function() { 
    return "Are you sure you wish to leave the page?"; 
} 

Yalnızca kullanıcıları rahatsız değil, bunu kullan. Bu söyleniyor, bu sayfadan ayrılırken, geri, ileri, yenilemeyi, pencereyi/sekmeyi kapatmayı, bir sayfaya gitmek için bir bağlantıyı tıklatmayı veya bir form göndermeyi vb. Içerir. Bu yüzden muhtemelen bunu aramak isteyeceksiniz. istemi gerektiğini yere gidiyor: Örneğin

window.onbeforeunload = null; 

bir bilgi formu göndererek, veri kaybı/ayrılırken istemi istiyorum, ama aslında göndermeden değilken ederim.

+0

@suraj: Örneğin, aşağıya bir cevap yazmaya başlayın ve ardından sayfadan çıkmayı deneyin. :-) StackOverflow, Nick'in tarif ettiği şeyi yapar. –

+1

* "Muhtemelen sorulmaması gereken bir yere giderken bunu muhtemelen aramak isteyeceksiniz ..." * Ya da bir bayrak kullanın veya bağlantıyı kesmek yerine işlevi kontrol edin. İşlev bir dizge döndürmezse, kullanıcıya sormaz. –

+1

@suraj: Örnek: http://jsbin.com/aquse4 –

İlgili konular