chrome扩展类按钮上的事件监听器似乎不起作用,或者监听器的动作不起作用?

时间:2016-12-27 09:36:56

标签: javascript google-chrome google-chrome-extension dom-events google-chrome-storage

我正在尝试制作一个chrome-extension弹出窗口,用户可以添加特定选项卡的URL或删除一个或删除所有。删除一切工作正常,添加URL也可以。但是,删除一个链接'根本没有工作,我真的一直在与该部门斗争。我希望有人可以帮我解决这个问题,因为我不知道问题所在。以下是文件:

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

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

  • manifest.json:gist.github.com/kobrajunior/78acda830c2d1c384333542422f1494d

我在其他帖子上看过这可能是因为getElementsByClassName没有回复真实的'你可以使用函数操作事物的数组,如果这是真的,那么我可以使用各种工具来解决这个问题。

' X'按钮不起作用:

The 'X' button doesn't work

清除所有按钮按预期工作:

Clear everything buttons works as expected

1 个答案:

答案 0 :(得分: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]);