chrome.tabs.query не вызывается - PullRequest
0 голосов
/ 26 мая 2019

У меня проблема с методом расширений Chrome.В моем popup.js сообщение не отправляется, поэтому я не могу получить его в content.js, что делает этот код не вызываемым.

popup.js

document.addEventListener('DOMContentLoaded', function() {
  document.querySelector('button').addEventListener('click', onClick, false);
  document.querySelector('form').addEventListener('submit', e => e.preventDefault(), false);

  const blockedUsersContainer = document.querySelector('#blocked_users');

  function onClick () {
    const newUser = document.querySelector('form input').value;

    if(newUser.length > 0) {
      if(localStorage.getItem('blockedUsers') !== null) {
        let oldStorage = localStorage.getItem('blockedUsers'),
        newStorage = `${oldStorage},${newUser}`;
        localStorage.setItem('blockedUsers', newStorage);
      } else {
        localStorage.setItem('blockedUsers', newUser);
      }

        //this is string
        let blockedUser = localStorage.getItem('blockedUsers');

        //this function is not invoked.
        chrome.tabs.query({currentWindow: true, active: true}, function (tabs) {
          chrome.tabs.sendMessage(tabs[0].id, blockedUser);
        });
      }
    }
  }

  function setResponse({error, usersList}) {
    if(error) return alert(error);

    blockedUsersContainer.innerText = '';
    let blockedUsers = localStorage.getItem('blockedUsers');

    displayBlockedUsers(blockedUsers);
  }
}, false);

content.js

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
  const commentsNodes = document.querySelectorAll('#komentarze dl');
  const newUserString = request.blockedUsers;

  sendResponse({error: false, usersList: newUserString})

  let usersListArray = newUserString.split(',');
  for (let i = 0; i < commentsNodes.length; i++) {
    for (let j = 0; j < usersListArray.length; j++) {
      if(commentsNodes[i].children[0].innerHTML.toLowerCase().includes(usersListArray[j].trim()))
      commentsNodes[i].style.display = 'none';
    }
  }
});

Что не так с этим кодом?Почему эта функция не вызывается?Я просто не могу понять это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...