Как проверить, было ли расширение активировано на каждой вкладке? - PullRequest
0 голосов
/ 23 июня 2019

Я создал расширение Chrome.Функция отлично работает на одной странице.В настоящее время проблема заключается в том, как проверить, было ли расширение активировано в каждой вкладке.Поэтому я могу повторно инициализировать значок панели инструментов.

Шаги для воспроизведения: 1. На странице A активируйте расширение, измените значок панели инструментов, чтобы закрыть значок.2. Откройте новую страницу B, значок по-прежнему использует значок закрытия.

Я просто хочу, чтобы значок панели инструментов отображался на каждой странице.

Я пытаюсь использовать вкладки на Обновлено, но оноповлияет на расширение активированной страницы.

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
    chrome.browserAction.setIcon({
        path: "images/logo.png"
    });
});

1 Ответ

0 голосов
/ 26 июня 2019

Вы можете вызвать chrome.browserAction.setIcon () , передав tabId ключ, например:

chrome.browserAction.setIcon({
        tabId: my-tab-id,
        path: {"images/logo.png"}
      }); 

Вы также можете обновить значок из фона для всех вкладок, когда возникает какое-либо условие, чтобы вы могли сделать что-то вроде этого:

if (someCondition) {

  chrome.tabs.query({}, function(tabs) {    
    tabs.forEach(tab => {    
      chrome.browserAction.setIcon({
        tabId: tab.id,
        path: {"images/logo-A.png"}//ICON A
      });
    });    
  });


} else {

  chrome.tabs.query({}, function(tabs) {

    tabs.forEach(tab => {    
      chrome.browserAction.setIcon({
        tabId: tab.id,
        path: {"images/logo-B.png"}//ICON B
      });
    });    
  });

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