У меня проблемы с изменением значения значка при каждой загрузке контента (смена страницы). Странно то, что все работают в режиме разработки, и значение значка меняется, но когда я разрабатывал приложение, значок магазина не менялся при каждой загрузке контента. Почему?
Вот немного кода из content.js
function hideComments(comments, users) {
let deletedComments = 0;
for (let i = 0; i < comments.length; i++)
for (let j = 0; j < users.length; j++)
//user is ALWAYS at [2] index in the array
if(comments[i].children[0].innerHTML.toLowerCase().split(',')[2].trim() === users[j]) {
comments[i].style.display = 'none';
deletedComments++;
}
//send number of deleted comments to the background
if(deletedComments !== 0)
return chrome.runtime.sendMessage({data: `${deletedComments}`});
chrome.runtime.sendMessage({data: ''});
}
if(blockedUsers === null)
localStorage.setItem('blockedUsers', '');
blockedUsers = localStorage.getItem('blockedUsers');
if(blockedUsers.length) {
//function expects an array as 2nd parameter
hideComments(commentsNodes, blockedUsers.split(','));
}
Как я уже говорил. Если у меня есть, скажем, 2 добавленных пользователя, значение значка меняется на 5, если существует 5 комментариев, или значок установлен на пустую строку (чтобы скрыть ее), если ее нет. Он отлично работает в режиме разработки, но не при добавлении приложения в магазин.
background.js
chrome.runtime.onInstalled.addListener(function() {
chrome.runtime.onMessage.addListener(function (message, sender) {
chrome.browserAction.setBadgeBackgroundColor({ color: [238, 50, 78, 255] });
chrome.browserAction.setBadgeText({text: message.data});
});
});