2010-04-18 19 views
6

Web sayfamda javascript'te bir editörüm var ve kaydedilmemiş değişiklikler olsa bile sayfayı terk etmek isteyip istemediğini kullanıcıya sormak istiyorum.Uygun olduğunda önce nasıl yükleme iletişim kutusu görüntülenir?

Ben bu şekilde "onbeforeunload iletişim" için özel bir mesaj ekleyebilirsiniz biliyorum:

window.onbeforeunload = function() { 
    return 'You have unsaved changes!'; 
} 

(Source) ama gerçekten bazı kaydedilmemiş değişiklikler olduğu yerde sadece iletişim kutusunu görüntülemek için istiyorum. Bu nasıl yapılır?

Teşekkürler!

cevap

8

Böyle bir şey yapabilirsiniz:

var unsavedChanges = false; 
window.onbeforeunload = function() { 
    if (unsavedChanges) return 'You have unsaved changes!'; 
} 

function makeSomeChange() { 
    // do some changes.... 
    unsavedChanges = true; 
} 

Sen 'değiştir' olay işleyicileri unsavedChanges değiştirmek emin olun.

+0

Çalışıyor! Yazdıkça boş ya da tanımsız yerine boş dize döndürüyordum. Teşekkür ederim! –