如何检查每个选项卡中是否激活了扩展



我创建了一个Chrome扩展名。该功能在单页中正常工作。目前的问题是如何在每个选项卡中检查扩展程序是否已激活。因此我可以重新确定工具栏图标。

复制步骤:1.在第A页中,主动扩展名,将工具栏图标更改为关闭图标。2.打开一个新的页面B,图标仍在继续使用Close Icon。

我只想使工具栏图标反射到每个页面。

我尝试使用onuupdated的选项卡,但会影响扩展激活的页面。

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

您可以调用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
      });
    });    
  });
}