SORU
11 HAZİRAN 2009, PERŞEMBE


Eğer belge yükledi olmadığını tespit etmek için Nasıl (7/IE Firefox 3)Javascript

Belge yüklendikten sonra bir fonksiyon çağırmak istiyorum, ancak belge olabilir ya da henüz yükleme bitmiş olabilir. Eğer yük olursa, o zaman fonksiyonu çağırabilirim. Eğer yüklemek değilse, sonra bir olay dinleyicisi ekleyin. Adı varamazsın beri yüklendiğinde zaten ateş sonra bir eventlistener ilave edemiyorum. Ne kadar belge varsa yüklü olup olmadığını kontrol edebilir miyim? Ama tamamen işe yaramazsa aşağıdaki kodu denedim. Herhangi bir fikir?

var body = document.getElementsByTagName('BODY')[0];
// CONDITION DOES NOT WORK
if (body && body.readyState == 'loaded') {
    DoStuffFunction();
} else {
    // CODE BELOW WORKS
    if (window.addEventListener) {  
        window.addEventListener('load', DoStuffFunction, false);
    } else {
        window.attachEvent('onload', DoStuffFunction);
    }
}

CEVAP
17 AĞUSTOS 2011, ÇARŞAMBA


Tüm kodu için gereken galambalazs tarafından söz yok. Saf JavaScript bunu yapmak için çapraz tarayıcı basit yolu document.readyState test için:

if (document.readyState === "complete") { init(); }

Bu bir WordPress kullanmak yok.

JavaScript yüklü olduğu yere bağlı olarak, bu bir zaman aralığı içinde yapılabilir:

var readyStateCheckInterval = setInterval(function() {
    if (document.readyState === "complete") {
        clearInterval(readyStateCheckInterval);
        init();
    }
}, 10);

Aslında document.readyState üç durumu olabilir:

Gelirler "yükleme belge yüklenirken", "etkileşimli ayrıştırma ama hala alt kaynakları yükleme bittiğinde" ve "sonra" yüklü. tam -- document.readyState at Mozilla Developer Network

Eğer öyleyse sadece DOM hazır olmak gerekirse, document.readyState === "interactive" kontrol edin. Eğer tüm sayfayı hazır, görüntüleri dahil olmak istiyorsanız, document.readyState === "complete" Kontrol edin.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunliu

    bunliu

    2 Mayıs 2007
  • MndsgnVEVO

    MndsgnVEVO

    26 Kasım 2013
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006