Nasıl OnBeforeUnload iletişim geçersiz kılmak ve kendi ile değiştirebilir miyim?
Sayfa (Çok sık rastlanan bir sorun) ayrılmadan önce kaydedilmemiş değişiklikler hakkında kullanıcıları uyarmak istiyorum.
window.onbeforeunload=handler
Bu benim kendi metin saran rahatsız edici standart bir mesaj ile varsayılan bir iletişim yükseltir ama çalışıyor. Ya benim metin açıktır, bu yüzden tamamen standart mesajı değiştirin, ya da (daha iyi) kalıcı bir iletişim jQuery kullanarak tüm iletişim değiştirmem gerekiyor.
Şimdiye kadar başarısız oldum ve bir cevabı var gibi görünüyor eden kimseyi bulamadım. Hatta mümkün mü?
Sayfamda Javascript:
<script type="text/javascript">
window.onbeforeunload=closeIt;
</script>
Bu closeİt() fonksiyonu:
function closeIt()
{
if (changes == "true" || files == "true")
{
return "Here you can append a custom message to the default dialog.";
}
}
JQuery ve jqModal böyle bir şey (özel bir kullanarak iletişim onaylayın) denedim kullanarak:
$(window).beforeunload(function() {
confirm('new message: ' this.href ' !', this.href);
return false;
});
ayrıca çalışmıyor yapamam beforeunload olayı bağlamak gibi görünüyor.
CEVAP
Yapabileceğiniz en iyi iş olabilir onbeforeunload
, varsayılan diyalog değiştiremezsiniz.
window.onbeforeunload = function() {
return 'You have unsaved changes!';
}
Microsoft'un bu Here's a reference:
Bir dize pencere returnValue özelliğine atanır.olay, bir iletişim kutusu kullanıcı mevcut sayfada kalmak için bu seçeneği verir ve kendisine atanan dize korumak görünür. İletişim kutusunda görünen varsayılan deyimi, Bu sayfanın dışında gerçekten gezinmek için istediğinizden emin misiniz"? ... TAMAM devam edin, geçerli sayfada kalmak için İptal düğmesine basın.", kaldırılamaz veya değiştirilemez.
Sorun:
onbeforeunload
denir,window.event.returnValue
gibi işleyicisi dönüş değeri alacaktır.- Sonra bir dize boş değilse) olarak dönüş değeri ayrıştıracak.
false
bir dize olarak ayrıştırılır beri, diyalog kutusutrue
/false
uygun bir geçecek olan ateş edecek.
Sonuç, onbeforeunload
17 *varsayılan diyalog engellemek için atama bir yolu yok.
JQuery hakkında daha fazla bilgi için:
- JQuery olay ayarlamaolabilir
onbeforeunload
diğer olaylar da meydana sağlar olarak sorunlu olması. Senin düz ol kullanmaya devam ederdim meydana kaldırma olayı sadece dilediğine' bunun için JavaScript. bir WordPress kullanmak
bind
genel sözdizimi kullanmak zorunda kalırdıkonbeforeunload
için bir kısayol yok.$(window).bind('beforeunload', function() {} );
Nasıl bir yeni satır (\n) sed kullanar...
Nasıl Java metin editörleri için Eclip...
Nasıl Twitter Bootstrap kalıcı bir kut...
Nasıl bir işlevi jQuery bir iletişim k...
Nasıl gönderildi form değerleri sayısı...