Наиболее вероятная ситуация здесь заключается в том, что это событие уже сработало до запуска этого кода.
Вы можете проверить это, поместив прослушиватель событий где-то ранее в ваше приложение. Одним из примеров может быть добавление приведенного ниже сценария непосредственно в верхней части HTML-страницы:
<script>
document.addEventListener('DOMContentLoaded', () => {
console.log('DOMContentLoaded fired');
});
</script>
Это должно показать сообщение журнала в ваших журналах в тот момент, когда происходит событие, что, вероятно, дообъект, показанный в приведенном выше примере кода, был создан.
Как правило, это событие возникает, когда основной документ загружен и проанализирован, но не подресурсы. Это означает, что если ваша строка кода запускается асинхронно после загрузки документа (например, если она ожидает fetch
или setTimeout
или если тег <script>
помечен как async
), то вполне возможно, чтособытие будет запущено первым.
Есть еще один вариант: событие может вообще не запускаться, потому что содержимое DOM действительно еще не загружено. Это гораздо менее вероятно, но вы можете подтвердить состояние документа, установив глобальный document.readyState
. Если установлено значение interactive
или complete
, событие уже сработало.