未捕获的TypeError:无法读取属性' 0'在Chrome扩展程序中为null

时间:2015-05-12 09:54:27

标签: javascript google-chrome google-chrome-extension

我试图创建一个Google扩展程序,在我这样做的所有问题中,我遇到了这个问题,即使通过查看太多的答案,我也无法弄清楚如何修复StackOverflow的。

基本上,当您单击此弹出窗口中的链接时,此代码应打开一个弹出窗口替换现有弹出窗口。

所以这个代码,当你点击" clickme"链接,打开" popup2.html"。也许答案很明显,但我的javascript知识不仅仅是生锈......

var hrefs = document.getElementById("clickme");

function openLink() {
    var href = this.href;
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        var tab = tabs[0];
        chrome.tabs.update(tab.id, {url: href});
    });
}

for (var i=0,a; a=hrefs[i]; ++i) {
    hrefs[i].addEventListener('click', openLink);
}
document.getElementById('clickme').addEventListener('click', hello);

提前谢谢!

1 个答案:

答案 0 :(得分:2)

问题是您正在从hrefs变量访问0属性,该变量为null。

hrefs[i].addEventListener('click', openLink);

您的代码假定hrefs包含数组,但它是DOMElement。在您的情况下,i为0。我想这个循环也是一个无限循环。