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

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();
    });
}

Мне помогло.

Теги

 

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

Zabbix — оповещение по телефону через Asterisk

Как-то раз мы проспали проблему. Zabbix прислал пару SMS, но никто ночью не проснулся. А если бы Zabbix позвонил, да ещё бы и рассказал о проблеме, то было бы проще всё упавшее поднимать. Учим Zabbix звонить на телефон.

Теги