Настройка значка в расширении Chrome работает в режиме разработки, но не в Prod (магазин Chrome) - PullRequest
0 голосов
/ 02 июня 2019

У меня проблемы с изменением значения значка при каждой загрузке контента (смена страницы). Странно то, что все работают в режиме разработки, и значение значка меняется, но когда я разрабатывал приложение, значок магазина не менялся при каждой загрузке контента. Почему?

Вот немного кода из 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});
  });
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...