我正在尝试创建一个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);
先感谢您 !
最佳答案
问题是您正在从hrefs
变量(为空)访问0属性。
hrefs[i].addEventListener('click', openLink);
您的代码假定
hrefs
拥有一个数组,但它是一个DOMElement。 i
在您的情况下为0。我猜这个循环也是一个无限循环。