我试图创建一个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);
提前谢谢!
答案 0 :(得分:2)
问题是您正在从hrefs
变量访问0属性,该变量为null。
hrefs[i].addEventListener('click', openLink);
您的代码假定hrefs
包含数组,但它是DOMElement。在您的情况下,i
为0。我想这个循环也是一个无限循环。