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
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.
Nasıl JavaScript devre dışı olup olmad...
Eğer bir değişkenin NULL olup olmadığı...
eğer belirli bir dosya olup olmadığını...
Nasıl eğer tarayıcı HTML5 Yerel Depola...
Eğer bir dize geçerli bir sayı olup ol...