2012-11-12 2 views
5

В браузерах, которые поддерживают событие DOMContentLoaded и свойство document.readyState:document.readyState на DOMContentLoaded?

Когда DOMContentLoaded пожары, можно предположить, что значение document.readyState всегда будет либо "complete" или "interactive"/"loaded"?

(Или, может быть, что document.readyState иногда до сих пор имеет значение "loading"?)

В своем ответе просьба указать ссылку на авторитетный источник.

Вы можете задаться вопросом: почему бы просто не послушать readystatechange? Это связано с тем, что стандартный браузер Android 2.3.5 является целевой платформой, и он не реализует событие readystatechange.

+1

Почему бы просто не послушать 'DOMContentLoaded'? ;-) –

+0

Я уверен, что Android 2.3 поддерживает событие readystatechange, но просто использует загруженные вместо интерактивного/полного. Я буду исследовать и вернуться. – dotnetCarpenter

+0

ОБНОВЛЕНИЕ. Действительно, вы правы. Я сделал небольшой тест здесь: http://test.it-kollektivet.dk/white-space/android2.3.html Но единственным значением, которое я получаю из document.readyState, является ** загрузка ** и ** загруженная **. – dotnetCarpenter

ответ

7

Стоимость readyState Недвижимость всегда "interactive", когда DOMContentLoaded уволен. Об этом свидетельствует тот факт, что MDN documentation претензии:

// alternative to DOMContentLoaded event 
document.onreadystatechange = function() { 
    if (document.readyState == "interactive") { 
    initApplication(); 
    } 
} 

является взаимозаменяемым с DOMContentLoaded обработчика. Вы также можете взглянуть на спецификацию here, которая повторяет это.

+1

К сожалению, это не так на Android 2.3.5. Я просто выполнил тест, и результат совершенно неожиданно для меня: когда срабатывает 'DOMContentLoaded', значение' document.readyState' '' загружается '' (т.е. ни '' complete '', ни' 'interactive' ', или' "loading"). – feklee

+0

@feklee Это должно быть потому, что нет дополнительных ресурсов, и в этом случае DOMContentLoaded и событие загрузки одновременно срабатывают. Познакомимся с спецификацией, которую я связал. –

+0

Обратите внимание, что значение '' загружено '', а не '' загрузка ''. Кроме того, как только происходит событие '' load '', это значение' 'loading", как в других браузерах. Я создал [связанный вопрос] (http://stackoverflow.com/questions/13348029/values-for-document-readystate-in-android-2-3-browser), запрашивая документацию. – feklee

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