我正在尝试创建一个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。我猜这个循环也是一个无限循环。

10-06 04:48