Что такое событие DOM ready?
Мне нужно запустить скрипт, как только будет получено содержимое страницы (весь HTML-элемент), но его пока не нужно визуализировать.
Я предполагаю, что просто иметь простой <script>
тег, который выполняет некоторый код в самой верхней части моей страницы, должен сделать свое дело?
Чтобы сформулировать вопрос по-другому: означает ли DOM ready, что все элементы и ресурсы были извлечены и отображены?
4 ответа
DOM ready означает, что весь HTML был получен и проанализирован браузером в дереве DOM, которым теперь можно манипулировать.
Это происходит до полной визуализации страницы (поскольку внешние ресурсы могут быть еще не полностью загружены, включая изображения, CSS, JavaScript и любые другие связанные ресурсы).
Фактическое событие называется DOMContentLoaded
,
Мне нужно запустить скрипт, как только будет получено содержимое страницы (весь HTML-элемент), но его еще не нужно отображать.
Я предполагаю, что просто наличие простого тега, выполняющего некоторый код в самом верху моей страницы, должно помочь?
Вполне вероятно, то, что вы хотите DOMContentLoaded
событие. Вы можете использовать это так:
<head>
<!-- … --->
<script>
window.addEventListener('DOMContentLoaded',function () {
//your code here
});
</script>
</head>
Чтобы сформулировать вопрос иначе: означает ли готовность DOM, что все элементы и ресурсы были извлечены и отрисованы?
Нет события "DOM ready". Вы, наверное, думаете о jQuery.ready()
или какое-то подобное странное использование этой терминологии (например, у Google также есть собственное событие с таким же названием, на которое они ссылаются).
Для DOMContentLoaded
событие, однако (цитируя MDN):
Событие DOMContentLoaded срабатывает, когда исходный документ HTML был полностью загружен и проанализирован, не дожидаясь завершения загрузки таблиц стилей, изображений и подфреймов.
DOMready означает: структура DOM была встроена в память браузера. Страница асинхронно уже начала рендеринг, но она может быть еще не закончена, так как внешние ресурсы, такие как изображения, видео и т. Д., Будут загружены позже.
Вы также можете попробовать с функциями
window.onload = function(){
//your code
}
или же
body.onload = function(){
//your code
}
если вы не хотите использовать jQuery.
Будьте осторожны, загруженный DOM не означает, что страница загружена, после этого события могут быть загружены iframes, javascript, images и css.
На DOM-мероприятиях есть хорошее руководство по обучению Javascript
Объектная модель документа (DOM) - это кроссплатформенное и независимое от языка соглашение для представления и взаимодействия с объектами в документах HTML, XHTML и XML.[1] Узлы каждого документа организованы в древовидную структуру, которая называется деревом DOM