Получить первый элемент HTMLCollection после загрузки окна (Joomla)

Я написал модуль Joomla и пытаюсь получить доступ к HTMLCollection в небольшом сценарии. Я добавил свой скрипт через

$document->addScript('templates/design_control/js/mod_articles_newsbox.js');

сам скрипт выглядит так:

function openNews(id)
{
    var list = document.getElementsByClassName("newsbox");
    console.log(list);
    console.log("newsbox length: " + list.length);
    console.log(list[0]);
    ...
}

if(window.addEventListener){
    window.addEventListener("load", openNews(0), false);
} else {
    window.attachEvent("onload", openNews(0));
}

Теперь проблема в том, что я не могу получить первый элемент моего списка. Когда я регистрирую сам список, все выглядит нормально, и я получаю список с 1 элементом. Но когда я пытаюсь зарегистрировать этот первый элемент или длину списка, он не определен /0.

Я не знаю, если это проблема с Joomla и как я добавляю сценарий или сценарий выполняется до того, как элемент готов (что было бы странно, потому что сам список печатается нормально) или что-то еще, я знаю только, что я впустую потратил слишком много времени на это ^^ Итак, у вас есть какие-либо подсказки, как решить эту проблему?

1 ответ

Попробуйте использовать другое событие javascript при загрузке DOM:

if (window.addEventListener) {
  window.addEventListener('DOMContentLoaded', openNews(0));
} else {
  window.attachEvent('onload', openNews(0));
}
Другие вопросы по тегам