如何检查每个选项卡中的扩展名是否已激活?

时间:2019-06-23 06:50:29

标签: google-chrome google-chrome-extension

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

复制步骤: 1.在页面A中,激活扩展名,将工具栏图标更改为关闭图标。 2.打开一个新页面B,该图标仍然使用关闭图标。

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

我尝试使用onUpdated标签,但这会影响扩展程序激活的页面。

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

1 个答案:

答案 0 :(得分:0)

您可以通过 tabId 键调用chrome.browserAction.setIcon(),例如:

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
      });
    });    
  });

}