Выполнение (запуск) скрипта после загрузки страницы на jQuery/JavaScript
Какая-либо написанная функция при загрузке вашего сайта может сработать некорректно, и случается это потому, что контент вашего сайта не успел полностью прогрузиться на стороне пользователя, как скрипт уже закончил свою работу.
Исправить это можно, если отложить выполнение скрипта до полной загрузки страницы или DOM.
Запуск скрипта после загрузки DOM (Document Object Model) на jQuery/JavaScript
Для того чтобы браузер смог отобразить страницу вашего (и не только) сайта, ему необходимо построить DOM-дерево. Формируется оно за счет получения и разбора HTML-документа.
В тот момент, когда DOM готов (медиафайлы при этом могут быть еще не загружены) мы можем начать «играть» с нашими скриптами.
В jQuery состояние готовности DOM можно определить с помощью функции ready:
$(document).ready(function() { // Ваш код >);
Аналог функции $(document).ready на чистом JavaScript выглядит следующим образом:
document.addEventListener("DOMContentLoaded", function() { // Ваш код >);
Как вы могли заметить, он основан на событии DOMContentLoaded.
Запуск скрипта после полной загрузки страницы на jQuery/JavaScript
Полная загрузка страницы подразумевает под собой и готовность DOM и полную загрузку всех медиафайлов, например таких, как изображения.
Отследить этот момент в jQuery можно с помощью обработчика события load:
$(window).on("load", function() { // Ваш код >);
Аналогичный вариант на JavaScript:
window.addEventListener("load", function() { // Ваш код >);
Если же вы хотите помимо выполнения скрипта после загрузки страницы сделать неоднократное выполнение функции с заданным интервалом времени, воспользуйтесь этой статьей.
3 способа запуска функции или кода Javascript (js) при загрузке страницы.
Сегодня хочу рассказать об одной проблеме, которая часто возникает у людей, которые начинают изучать Javascript.
Они пытаются взаимодействовать с HTML-элементами на странице, которые находятся ниже по коду, чем сам скрипт. Соответственно, скрипт уже подгрузился, а элемент, с которым нужно будет взаимодействовать, еще нет. По этой причине ничего работать не будет.
Особенность языка Javascript в том, что его код выполняется последовательно, строка за строкой, как они написаны в исходном коде.
#block К элементу с id #block не будет применяться правило css (background-color:yellow), т.к. строка
$("#block").css("background-color", "yellow");
Будет выполняться раньше, чем загрузиться html-строка:
Как быть, если нам нужно выполнить код или функцию, только после того, как весь документ полностью загрузится?
Я хочу рассказать о трех способах, как это можно сделать.
Все мои уроки по Javascript здесь.
1 способ. С использованием библиотеки jQuery.
Чаще всего сам им пользуюсь, наиболее простое и удобное решение, но требует подключения библиотеки Jquery.
Вот как преобразиться предыдущий, код, если мы воспользуемся следующим методом.
#block
2 способ. С помощью элемента body и атрибута onload.
#block Выбирайте тот способ, который более всего подходит к вашей ситуации, и применяйте его на практике.
Все мои уроки по Javascript здесь.