Google chrome extension 站点不运行时的事件处理程序';t匹配manifest.json';匹配项';
My manifest.json包含以下块:Google chrome extension 站点不运行时的事件处理程序';t匹配manifest.json';匹配项';,google-chrome-extension,Google Chrome Extension,My manifest.json包含以下块: "content_scripts": [ { "all_frames": true, "matches": [ "*://www.google.com/*", "*://www.cnn.com/*", "*://*.foxnews.com/*" ], "js": ["js/main.js"]
"content_scripts": [
{
"all_frames": true,
"matches": [
"*://www.google.com/*",
"*://www.cnn.com/*",
"*://*.foxnews.com/*"
],
"js": ["js/main.js"]
}
],
每当用户访问与我的匹配设置中的某个站点不匹配的网站时,我需要触发一个事件(在我的content js或background.js中,无所谓)
它是如何完成的?在您的background.js
中,您可以添加一个用于加载选项卡的侦听器。在这种情况下,您可以获取当前选项卡的URL并与列表匹配
chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {
if (info.status == "complete") {
var url = tab.url.replace(/.*?:\/\//g, "").replace(/\/$/, ""); //removes the protocol
var allowedURLS = ["www.google.com", "www.cnn.com", "foxnews.com"];
for(var i in allowedURLs) {
if(allowedURLs[i].indexOf(url) == -1) {
//URL does not match
break;
}
}
}
});
您需要在内容脚本中使用exclude_匹配,这意味着它下面的脚本将不会注入
来自谷歌:
排除此内容脚本将被注入的页面。有关这些字符串语法的更多详细信息,请参见匹配模式,有关如何排除URL的信息,请参见匹配模式和全局
对于您的情况:
"content_scripts": [
{
"all_frames": true,
"matches": ["<all_urls>"],
"js": ["js/main.js"],
"exclude_matches": [
"*://www.google.com/*",
"*://www.cnn.com/*",
"*://*.foxnews.com/*",
]
}
]
“内容脚本”:[
{
“所有框架”:正确,
“匹配项”:[“”],
“js”:[“js/main.js”],
“排除匹配项”:[
“*://www.google.com/*”,
“*://www.cnn.com/*”,
“*://*.foxnews.com/*”,
]
}
]