SORU
19 AĞUSTOS 2009, ÇARŞAMBA


Nasıl boşaltma bir sayfa (gezinme) dur JS mı?

Herkes yeniden yüklemeyi ya da uzakta seyreden bir sayfa durdurmak için nasıl biliyor mu?

jQuery(function($) {

    /* global on unload notification */
    warning = true;

    if(warning) {
        $(window).bind("unload", function() { 
            if (confirm("Do you want to leave this page") == true) {
                //they pressed OK
                alert('ok');
            } else {
                // they pressed Cancel
                alert('cancel');
                return false;
            }
        });
    }
});

Şu an, gelecek emirleri öğeleri miktarları değiştirmek için yeteneğine sahiptir görüntüler /- düğmelerini kullanarak sipariş sayfasında bir e-ticaret sitesi üzerinde çalışıyorum. Miktarları bu şekilde aslında bu düzenin kendisi değişmez değişen, Onayla tuşuna basın ve bu nedenle olumlu bir eylem yapılıyor sırasını değiştirmek için.

Ancak eğer onlar değişti miktarları ve gezinmek uzak sayfasını isterim onları uyar onlar bunu yaparken vaka bu bir kaza, değişen miktarlarda kaybolur eğer onlar gidin dışarıda ya da sayfayı yenile.

Yukarıdaki kodu ben kullanarak bir global değişken çıkar false varsayılan olarak (onun sadece gerçek bir test), bir miktar değişmiş olacak güncelleme bu değişken için gerçek, ve ne zaman onlar Onayla değişiklikleri yapacağım ayarlanmış false.

Uyarı geçerlidir ve bu sayfa kaldırıldı, eğer onlar boşaltma durdurmak istiyorum bu sayfada kalmak " derlerse, onlara bir onay kutusunu sunuyoruz. return false işe yaramıyor, hala kullanıcı (uyarılar var sadece hata ayıklama için) gidin uzakta sağlar

Herhangi bir fikir?

CEVAP
14 EKİM 2010, PERŞEMBE


Bu kod Natalie önerisine göre uyarır, ama eğer bu sayfada bir form gönderilmişse uyarıyı devre dışı bırakır. JQuery Kullanır.

var warning = true;
window.onbeforeunload = function() { 
  if (warning) {
    return "You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes";
  }
}

$('form').submit(function() {
   window.onbeforeunload = null;
});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • Professor Messer

    Professor Me

    27 NİSAN 2007

İLGİLİ SORU / CEVAPLAR