-1

Я пытаюсь создать всплывающее окно с расширением хрома, посредством которого пользователь может добавить URL-адрес определенной вкладки или удалить один или удалить все. Удалить все отлично, добавьте URL-адрес и трюк. Однако «удалить одну ссылку» не работает вообще, и я действительно боролся с этим отделом. Надеюсь, кто-то может помочь мне с этим, потому что я не знаю, в чем проблема. Вот файлы:Слушатели событий на хром классе расширения кнопок, похоже, не работают, или действие слушателя не работает?

  • 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] ** в самом вопросе **, а не только в качестве частичной URL-адреса в другом месте. Без ясного, известного, соответствующего лицензирования мы не можем просто переместить этот код в вопрос для вас. – 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