如何为每个网址

时间:2016-11-22 22:24:16

标签: javascript google-chrome-extension

我正在创建一个简单的扩展程序,以便在不同的网址上显示图标。

我的后台脚本包括:

chrome.tabs.onUpdated.addListener(function(o,r,m){for(var c=[
"URL1",
"URL2",
],a=0;a<c.length;a++)if(~m.url.indexOf(c[a])){chrome.pageAction.show(o);break}});

我想为两个网址中的每一个显示不同的网页操作图标。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您似乎在寻找chrome.pageAction.setIcon()

我重新编写了代码以使其更具可读性。我将Bitwise NOT ~的使用更改为!== -1的测试。我使用.some()循环遍历urlList(包含URL和图标的新对象)并指示是否找到了匹配项,以便在URL不显示时隐藏页面操作图标比赛。我认为你希望它隐藏在不匹配上,因为当你有匹配时你.show()

var urlList=[{
    url:"URL1",
    icon:"/URL1icon.png"
},
{
    url:"URL2",
    icon:"/URL2icon.png"
}];

chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab){
    if(!urlList.some(function(urlInfo){
        if(tab.url.indexOf(urlInfo.url) !== -1) {
            //The urlInfo.url must match the beginning of the tab's current URL.
            chrome.pageAction.show(tabId);
            chrome.pageAction.setIcon(tabId,{
                path:urlInfo.icon
            });
            return true;
        }
        return false;
    })) {
        //Hide the icon if the URL does not match.
        chrome.pageAction.hide(tabId);
    }
});