我正在创建一个简单的扩展程序,以便在不同的网址上显示图标。
我的后台脚本包括:
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}});
我想为两个网址中的每一个显示不同的网页操作图标。我该怎么办?
答案 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);
}
});