0

我写了一个 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 的问题,以及我如何添加脚本或在元素准备好之前执行脚本(这很奇怪,因为列表本身打印得很好)或其他什么,我只知道我在这上面浪费了太多时间^^那么,你有什么线索可以解决这个问题吗?

4

1 回答 1

0

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

if (window.addEventListener) {
  window.addEventListener('DOMContentLoaded', openNews(0));
} else {
  window.attachEvent('onload', openNews(0));
}
于 2015-05-08T18:24:20.057 回答