-1

我正在尝试制作一个 chrome 扩展弹出窗口,用户可以在其中添加特定选项卡的 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”按钮不起作用:

“X”按钮不起作用

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

清除所有按钮按预期工作

4

1 回答 1

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();
  }); 
}

或者您可以只使用您的主listID:

document.getElementById("list").removeChild(list[i]);
于 2016-12-27T09:46:51.250 回答