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