Найти тему

JavaScript — DOMContentLoaded не работает

Допустим, у нас есть функция, которую мы путаемся выполнить после загрузки HTML страницы:

document.addEventListener('DOMContentLoaded', function () {
console.log('DOM loaded!');
myCode();
});

А она то работает, то не работает. На одних страницах выполняется без проблем, на других — тишина. Сам столкнулся.

Проблема, вероятно, в том, что событие DOMContentLoaded успевает происходить до того, как начнёт выполнение код, в котором находится наша функция. Мы подписываемся на событие DOMContentLoaded, когда уже структура документа загружена.

В этом случае поможет немного модифицированный код:

if (document.readyState !== 'loading') {
console.log('DOM ready!');
myCode();
} else {
document.addEventListener('DOMContentLoaded', function () {
console.log('DOM loaded!');
myCode();
});
}

Мне помогло.

Источник:

JavaScript — DOMContentLoaded не работает | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу. Пишите комментарии, задавайте вопросы, подписывайтесь.