2010-12-09 2 views
1

У меня есть сайт, где я Путтена этот код, чтобы избежать ошибок:document.readyState в Firefox 3.5.x

$(function() { 
    var fnDocumentReady = function() { 
    if(document.readyState != "complete") { 
     setTimeout(function() { fnDocumentReady(); }, 300); 
     return; 
    } 

    //do stuff 
    }; 

    fnDocumentReady(); 
}); 

Но недавно я обнаружил, что в FF 3.5 не выполняет код, в котором «делать вещи». После анализа и debbuging я понял, что document.readySate в FF всегда undefined. Есть ли способ заменить это на что-то другое, что работает аналогично?

Спасибо!

ответ

1

Чтобы ответить на вопрос , почему? часть: document.readyState was added in Firefox 3.6.


Там нет необходимости здесь дополнительной проверки, JQuery уже отвлекается обнаружения, когда DOM готов, все, что вам нужно:

$(function() { 
    //do stuff 
}); 

Если Вы желаете все изображения загружены перед кодом работает, просто использовать window.onload вместо этого, как это:

$(window).load(function() { 
    //do stuff 
}); 
+0

это может стоять собой разумеется, что это не очень хороший ответ, потому что не каждый использует JQuery, но, как это было принято, я не могу жаловаться слишком много. Я скажу, что в Firefox, если ваш код работает достаточно рано, он может прослушивать событие «DOMContentLoaded», чтобы выяснить, когда Firefox 3.6 и более поздние версии вернут «readyState ==» complete » – Guss 2011-09-04 14:06:56

Смежные вопросы