Перейти к основному содержанию

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

code

Допустим, у нас есть функция, которую мы путаемся выполнить после загрузки 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();
    });
}

Мне помогло.

Теги

 

Похожие материалы

Запуск BAT скрипта при логине на сервер один раз

Настроим автозапуск BAT скрипта при логине юзера на сервер. Сделаем так, чтобы скрипт запускался только один раз, а при последующих входах запускаться не будет.

Теги