SORU
1 EKİM 2008, ÇARŞAMBA


Çapraz tarayıcı yüklendiğinde olay ve Geri düğmesi

Tüm büyük tarayıcılar (IE hariç), JavaScript yüklendiğinde olayı sayfasına Geri düğmesi bir operasyon sonucunda yüklediğinde ateş değildir, sadece sayfa ilk yüklendiğinde tetikler.

Birisi bu sorunu çözer çapraz tarayıcı bazı örnek kod (Opera, Safari, IE, Firefox ...) beni işaret edebilir? Opera ya da Safari bunu uygulamak ne yazık ki hiçbiri Firefox'un üretimi) yapar olay aşina ama ben.

CEVAP
14 EKİM 2008, Salı


Çocuklar, bu bir WordPress kullanmak yalnızca bir etkiye sahiptir buldum: sayfa Geri düğmesine basıldığında, yeniden. Bununla bir ilgisi yok "hazır".

Nasıl oluyor bu iş? Peki, DV ekleronunloadolay dinleyicisi.

// http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { // ...

Varsayılan olarak, hiçbir şey yapmaz. Ama bir şekilde bu Safari, Opera ve Mozilla -- yeniden olay işleyicisi içerir ne olursa olsun, tetikleyici gibi görünüyor.

[Düzenle(Nikolay)burada işlerin bu şekilde yürüdüğünü yüzden: webkit.org, developer.mozilla.org. Bu makaleleri (veya ayrı bir cevap aşağıda benim Özet) lütfen okuyun ve düşününgerçektenbunu yapmak ve sayfa yükleme yavaş kullanıcılar için yapmak gerekir.]

İnanamıyorum? Bunu deneyin:

<body onunload=""><!-- This does the trick -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>

JQuery kullanırken benzer sonuçlar göreceksiniz.

Bir tek karşılaştırmak isteyebilirsinizonunload

<body><!-- Will not reload on back button -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alfredo Garcia

    Alfredo Garc

    25 Mayıs 2007
  • ExcelIsFun

    ExcelIsFun

    16 ŞUBAT 2008
  • William Hyde

    William Hyde

    23 HAZİRAN 2008