我目前使用以下代码来阻止特定的网址。它工作正常,但现在我想对在 chrome 处理客户端请求之前不阻止的某些特定网址执行一些操作。
chrome.webRequest.onBeforeRequest.addListener(function(d){
return {cancel:true};
},{urls:["https://somesite.com/account/*",
"http://evilsite.com"
]},
["blocking"]);
例如,我想获取用户使用插件访问的每个网址的网址。(这里只是一个简单的案例......当然我在这里排除了被阻止的网站)
chrome.webRequest.onBeforeRequest.addListener(function(d){
console.log(d.url); // doesn't work
return {cancel:true};
},{urls:["https://somesite.com/account/*",
"http://evilsite.com"
]},
["blocking"]);
最佳答案
您需要删除过滤器(或者更确切地说,使其包含所有内容)并有条件地阻止:
chrome.webRequest.onBeforeRequest.addListener(
function(d){
console.log(d.url);
if(d.url.indexOf('https://somesite.com/account/') >= 0) {
return {cancel:true};
}
},
{ urls:["<all_urls>"] },
["blocking"]
);
或者,您可以有两个监听器,一个根据模式进行阻止,另一个执行其他操作。如果您的其他操作没有阻塞,那么性能可能会更好。
您需要 "<all_urls>"
list 中的权限。
关于javascript - 阻止前检查网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35241549/