Javascript 切换到网站后自动更改分机图标

Javascript 切换到网站后自动更改分机图标,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我想写一个chrome扩展,在每次点击和页面加载后自动检索页面地址,并运行一个脚本自动更改扩展图标。我的代码仅在单击扩展图标后更改图标。如何在切换到网站后自动更改图标 manifest.json { "manifest_version": 2, "name" : "__MSG_extName__", "default_locale" : "en", "version": "1.0", "permissions": [ "tabs" ], "browse

我想写一个chrome扩展,在每次点击和页面加载后自动检索页面地址,并运行一个脚本自动更改扩展图标。我的代码仅在单击扩展图标后更改图标。如何在切换到网站后自动更改图标

manifest.json

{
  "manifest_version": 2, 
  "name" : "__MSG_extName__",
  "default_locale" : "en",
  "version": "1.0",

  "permissions": [
    "tabs"
  ],  
  "browser_action": {
    "default_icon": "images/icon.png",
    "default_popup": "index.html"
  }
} 
script.js

chrome.tabs.query({'active': true, 'windowId': chrome.windows.WINDOW_ID_CURRENT},
   function(tabs){ 
      var url = tabs[0].url;
      if (url.indexOf('mywebsite.com') !== -1){
           chrome.browserAction.setIcon({path:"images/ok.png"});
      }else{
          chrome.browserAction.setIcon({path:"images/no.png"});
      }
   }
);

如果您希望在页面位置更改时收到通知,则应收听
chrome.tabs.onUpdated
事件。 有关详细信息,请参阅,但其想法是,倾听该事件,当触发时,检查选项卡是否是您关心的选项卡(例如,活动选项卡),并查看更改的值是否为URL,如果是,请与
mywebsite.com
进行比较。当您运行查询时,您的代码现在只检查一次

您的代码可能如下所示:

chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
   const newUrl = changeInfo.url;
   if (newUrl) {
       if (newUrl.indexOf('mywebsite.com') !== -1){
           chrome.browserAction.setIcon({path:"images/ok.png"});
       }else{
           chrome.browserAction.setIcon({path:"images/no.png"});
       }
   }
});

切换到另一个页面后,no.png图标不会更改您的意思是切换到另一个选项卡吗?在这种情况下,您还需要注意活动选项卡中的更改,请尝试使用“是”。Po użyciu chrome.tabs.on激活。addListener działa dzięki。