我在每次内容加载(页面更改)时更改徽章值时遇到问题。奇怪的是,每种方式都可以在开发模式下工作,并且徽章的价值也在不断变化,但是当我向商店开发应用时,徽章在每次加载内容时都不会改变。为什么?
这是来自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});
});
});