-1

我想做一个Chrome扩展弹出窗口,用户可以添加特定标签的URL或删除一个或全部删除。删除所有工作正常,添加网址也是。然而,“删除一个链接”根本不起作用,我真的一直在与该部门斗争。我希望有人能帮助我解决这个问题,因为我不知道问题出在哪里。以下是文件:Chrome扩展类按钮上的事件侦听器似乎无法工作,或者侦听器的操作不起作用?

  • popup.js:gist.github.com/kobrajunior/4852f85ae18cfb9edbe542a820b8c107

  • popup.html:gist.github.com/kobrajunior/1c26691734c19391c62dc336ed2e1791

  • 清单。 JSON:gist.github.com/kobrajunior/78acda830c2d1c384333542422f1494d

我已阅读其他职位,这可能是因为getElementsByClassName不会返回一个'真正'的数组,通过它你可以用函数处理事情,如果这是真的,那么我就没有办法解决这个问题了。

的 'X' 按钮不起作用:

The 'X' button doesn't work

清除一切按钮按预期工作:

Clear everything buttons works as expected

+0

请附上您的代码,[MCVE],**在问题本身**,而不仅仅是部分其他地方的网址。如果没有明确的,已知的适当许可,我们不能将这些代码转移到您的问题中。 – Makyen

回答

0

在你removeMe()功能,您必须删除您的DOM元素从其父元素。事情是这样的:

function removeMe(i) { 
    // remove it from the DOM 
    var list = document.getElementsByClassName('items'); 
    list[i].parentNode.removeChild(list[i]); 
    list.splice(i, 1); 

    // remove it from chrome-storage 
    chrome.storage.local.get({urlList:[], titleList:[]}, function(data) { 
    urlList = data.urlList; 
    titleList = data.titleList; 
    urlList.splice(i, 1); 
    titleList.splice(i, 1); 

    // update chrome storage 
    saveList(); 
    }); 
} 

或者你可以只用你的主要list ID:

document.getElementById("list").removeChild(list[i]); 
+0

现在尝试了他们两个,似乎仍然没有工作。我甚至添加了一个'alert-demo'来查看事件监听器是否工作,这也是行不通的。 – Kobrajunior

+0

我在深入挖掘你的代码!静止不动! – d3vi4nt

+0

为什么在'button'标签中使用';'分号? '' – d3vi4nt