У меня проблема с методом расширений 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';
}
}
});
Что не так с этим кодом?Почему эта функция не вызывается?Я просто не могу понять это ...