Получить первый элемент 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));
}