我目前正在开发Chrome扩展程序,我希望pageAction图标显示一定数量的网址(大约500)。
在我的 background.js 文件(以及其他代码)中,我有这个:
// Called when the url of a tab changes
function checkForValidUrl(tabId, changeInfo, tab) {
// If the tabs url starts with "http://specific_domain"
if (tab.url.indexOf('http://specific_domain') == 0) {
// Shows the page action
chrome.pageAction.show(tabId);
}
};
// Listen for any changes to the URL of any tab
chrome.tabs.onUpdated.addListener(checkForValidUrl);
我可以让它在特定网站上工作,但我想将“http://specific_domain”更改为允许网站列表,例如白名单。我可以访问在线的JSON文件。
以下是它的片段:
{
"antelife.com": {
"fbid": "AntElifecom",
"type": "store",
"name": "AntElife"
},
"amazon.com": {
"fbid": "Amazon",
"type": "store",
"name": "Amazon"
},
"ebay.com": {
"fbid": "eBay",
"type": "store",
"name": "eBay"
},
"mobilegeeks.com": {
"fbid": "mobilegeekscom",
"type": "publisher",
"name": "Mobile Geeks"
}
}
我想提取域名,并以某种方式迭代所有域名,如果它们在列表中,则应显示pageAction图标。像这样:
function checkForValidUrl(tabId, changeInfo, tab) {
for (var i = 0, iLength = whiteListUrl.length; i < iLength; i++) {
if (tab.url.indexOf('http://www.'+whiteListUrl[i]) > -1) {
chrome.pageAction.show(tabId);
notification.show();
break;
}
}
};
chrome.tabs.onUpdated.addListener(checkForValidUrl);
任何形式的帮助都应该有用。非常感谢。
答案 0 :(得分:0)
如果你有一个json字符串,你可以用这种方式得到url的列表;
var urlObj = JSON.parse(jsonString);
var whiteListUrl = Object.keys(urlObj);