如何在 Chrome 扩展中为 <all_urls> 创建异常?
How to create an exception for <all_urls> in Chrome extension?
我已阅读 但它接受的解决方案仅适用于清单文件中的内容脚本。
在
background.js
我有以下工作代码:
chrome.webRequest.onBeforeSendHeaders.addListener(handler, {urls: ["<all_urls>"] }, ["blocking", "requestHeaders"]);
出现问题是因为我需要它 应用于除一个 ( *://*.facebook.com/*
) 之外的所有网址。
如何创建此异常?
如果唯一的解决方案是正则表达式,您能否指导我如何正确编写它?
为 webRequest
事件调用 addListener
时可以提供的过滤器,即 RequestFilter type, use match patterns (where the docs say this)。匹配模式无法执行您想要的操作:排除特定 URL,同时允许所有其他 URL。
您必须在传递给听众的 webRequest
handler by checking the url
property of the details
Object 中执行排除。这样做可以是这样的:
function listenForWebrequest(details){
if(/^[^:]*:(?:\/\/)?(?:[^\/]*\.)?facebook.com\/.*$/.test(details.url)) {
//The URL matched our exclusion criteria
return;
} //else
//Do your normal event processing here
}
chrome.webRequest.onBeforeSendHeaders.addListener(listenForWebrequest, {
urls: ["<all_urls>"]
}, ["blocking", "requestHeaders"]);
我已阅读
在
background.js
我有以下工作代码:
chrome.webRequest.onBeforeSendHeaders.addListener(handler, {urls: ["<all_urls>"] }, ["blocking", "requestHeaders"]);
出现问题是因为我需要它 应用于除一个 ( *://*.facebook.com/*
) 之外的所有网址。
如何创建此异常?
如果唯一的解决方案是正则表达式,您能否指导我如何正确编写它?
为 webRequest
事件调用 addListener
时可以提供的过滤器,即 RequestFilter type, use match patterns (where the docs say this)。匹配模式无法执行您想要的操作:排除特定 URL,同时允许所有其他 URL。
您必须在传递给听众的 webRequest
handler by checking the url
property of the details
Object 中执行排除。这样做可以是这样的:
function listenForWebrequest(details){
if(/^[^:]*:(?:\/\/)?(?:[^\/]*\.)?facebook.com\/.*$/.test(details.url)) {
//The URL matched our exclusion criteria
return;
} //else
//Do your normal event processing here
}
chrome.webRequest.onBeforeSendHeaders.addListener(listenForWebrequest, {
urls: ["<all_urls>"]
}, ["blocking", "requestHeaders"]);