获取窗口加载后HTMLCollection的第一个元素(Joomla)

Get first element of HTMLCollection after window loads (Joomla)

本文关键字:元素 Joomla 第一个 窗口 加载 HTMLCollection 获取      更新时间:2023-09-26

我写了一个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));
}

现在的问题是我无法得到列表的第一个元素。当我记录列表本身的时候,一切看起来都很好,我得到了一个只有一个元素的列表。但是当我尝试记录第一个元素或者列表长度时,它是undefined/0。

我不知道,如果这是joomla的问题,以及我如何添加脚本或脚本在元素准备好之前执行(这将是奇怪的,因为列表本身打印得很好)或其他东西,我只知道我浪费了太多的时间在这^^所以,你有任何线索如何解决这个问题吗?

尝试在加载DOM时使用不同的javascript事件:

if (window.addEventListener) {
  window.addEventListener('DOMContentLoaded', openNews(0));
} else {
  window.attachEvent('onload', openNews(0));
}