Şov nasıl yapılır&; Bu sayfanın dışında gerçekten gezinmek için istediğinizden emin misiniz?"&kaydedilen değişiklikler ne zaman"?
Burada stackoverflow, eğer başladığın için değişiklik sonra girişimi gidin uzaklaşın sayfa, bir javascript Onayla düğmesini gösterir ve sorar: "bunu yapmak istediğinden emin misin gitmek Uzak Bu sayfa?" blee dizi... falan filan
Herkesten önce bu hayata geçirdi, nasıl değişiklikler kaydedilmiş izlerim? Kendi başıma yapabileceğimi düşünüyorum, uzmanlardan iyi uygulamaları öğrenmeye çalışıyorum.
Aşağıdaki denedim ama hala çalışmıyor:
<html>
<body>
<p>Close the page to trigger the onunload event.</p>
<script type="text/javascript">
var changes = false;
window.onbeforeunload = function() {
if (changes)
{
var message = "Are you sure you want to navigate away from this page?\n\nYou have started writing or editing a post.\n\nPress OK to continue or Cancel to stay on the current page.";
if (confirm(message)) return true;
else return false;
}
}
</script>
<input type='text' onchange='changes=true;'> </input>
</body>
</html>
Herkes bir örnek gönderebilir miyim?
CEVAP
Güncelleme (2013)
Bu noktaya bir cevap için uygun IE6-8 ve FX1-3.5 (ki ne olduğumuzu hedefleme geri 2009 zaman yazılmış), ama oldukça güncel değil artık ve işe yaramaz en güncel tarayıcılar - sol altındaki başvuru.
window.onbeforeunload
sürekli olarak tüm tarayıcılar tarafından tedavi edilir. Olmalı bir işlev başvurusu ve bir dize (orijinal cevap belirtmişti) ama bu olacak iş eski tarayıcılar için onay için çoğu görünür olsun bir şey atanır onbeforeunload
(dahil olmak üzere bir işlevi döndüren null
).
Bir işlev başvurusu için window.onbeforeunload
ayarlamak, ancak eski tarayıcılar sadece bir dize döndürmek yerine olay returnValue
ayarlamak için:
var confirmOnPageExit = function (e)
{
// If we haven't been passed the event get the window.event
e = e || window.event;
var message = 'Any text will block the navigation and display a prompt';
// For IE6-8 and Firefox prior to version 4
if (e)
{
e.returnValue = message;
}
// For Chrome, Safari, IE8 and Opera 12
return message;
};
confirmOnPageExit
eğer kullanıcı mesajı olmadan devam etmek istiyorsanız kontrol edin ve dönüş boş bunu yapamazsın. Sen hala olayı güvenilir bir şekilde onu açmak ve kapatmak için kaldırmak gerekir:
// Turn it on - assign the function that returns the string
window.onbeforeunload = confirmOnPageExit;
// Turn it off - remove the function entirely
window.onbeforeunload = null;
Cevap (2009 yılında çalıştı) orijinal
Açmak için:
window.onbeforeunload = "Are you sure you want to leave?";
Bunu kapatmak için:
window.onbeforeunload = null;
Bu standart şekilde normal bir olay bağlayabilirsiniz mi değil mi, bunu unutmayın.
Değerleri kontrol etmek için? Bu doğrulama çerçeve bağlıdır.
JQuery bu çok temel bir örnek) gibi bir şey olabilir:
$('input').change(function() {
if( $(this).val() != "" )
window.onbeforeunload = "Are you sure you want to leave?";
});
Nasıl elinize sağlık 2010 için tespit ...
Nasıl bir eleman dışında bir tıklama a...
Bir hizalamak için nasıl <sayfanın ...
Nasıl TextField öğeleri (Bitti Düğmele...
Nasıl bir WordPress kullanmak dışında ...