未捕获的类型错误:无法在 Chrome 扩展程序中读取 null 的属性“0”
2015-05-12
1415
我正在尝试创建一个 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个回答
问题是您正在从
hrefs
变量访问 0 属性,但该变量为空。
hrefs[i].addEventListener('click', openLink);
您的代码假设
hrefs
包含一个数组,但它是一个 DOMElement。
i
在您的情况下为 0。我猜循环也是一个无限循环。
A1rPun
2015-05-12