切换到网站

时间:2018-05-05 20:08:00

标签: javascript google-chrome-extension

我想编写一个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"});
      }
   }
);

1 个答案:

答案 0 :(得分:0)

如果您希望在页面位置更改时收到通知,则应该收听chrome.tabs.onUpdated事件。  有关详细信息,请参阅Official Documentation,但想法是,听取该事件,并在触发时检查选项卡是否与您关注的选项卡(例如,活动选项卡)并查看是否已更改value是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"});
       }
   }
});