use*_*308 12 google-chrome http google-chrome-extension
如果某些条件匹配,扩展如何拦截任何请求的URL以阻止它?
需要在manifest.json中设置什么权限?
int*_*ika 22
JavaScript代码:
以下示例说明了如何阻止对www.evil.com的所有请求:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {cancel: details.url.indexOf("://www.evil.com/") != -1};
},
{ urls: ["<all_urls>"] },
["blocking"]
);
Run Code Online (Sandbox Code Playgroud)
以下示例以更有效的方式实现了相同的目标,因为不以www.evil.com为目标的请求不需要传递到扩展:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return { cancel: true };
},
{urls: ["*://www.evil.com/*"]},
["blocking"]
);
Run Code Online (Sandbox Code Playgroud)
注册事件监听器:
要为Web请求注册事件侦听器,请使用常规addListener()函数的变体.除了指定回调函数之外,还必须指定过滤器参数,并且可以指定可选的额外信息参数.
Web请求API的addListener()的三个参数具有以下定义:
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
Run Code Online (Sandbox Code Playgroud)
以下是监听onBeforeRequest事件的示例:
chrome.webRequest.onBeforeRequest.addListener(
callback, filter, opt_extraInfoSpec);
Run Code Online (Sandbox Code Playgroud)
manifest.json上需要的权限:
"permissions": [
"webRequest",
"webRequestBlocking",
"tabs",
"<all_urls>"
],
Run Code Online (Sandbox Code Playgroud)
扩展示例和帮助链接:
| 归档时间: |
|
| 查看次数: |
12000 次 |
| 最近记录: |