Chrome扩展程序:如何拦截请求的URL?[已关闭]

yiytaume  于 2023-08-01  发布在  Go
关注(0)|答案(1)|浏览(119)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

8年前关闭。
Improve this question
扩展如何拦截任何请求的URL以在某些条件匹配时阻止它?(similar question for Firefox
在manifest.json中需要设置什么权限?

g2ieeal7

g2ieeal71#

  • JavaScript代码:*

以下示例说明如何阻止所有对www.evil.com的请求:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  { urls: ["<all_urls>"] },
  ["blocking"]
);

字符串
下面的示例以更有效的方式实现了相同的目标,因为不以www.evil.com为目标的请求不需要传递到扩展:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { 
    return { cancel: true }; 
  },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

注册事件监听器:

要为Web请求注册一个事件侦听器,可以使用通常的addListener()函数的变体。除了指定一个回调函数,你还必须指定一个过滤器参数,你可以指定一个可选的额外信息参数。
Web请求API的addListener()的三个参数具有以下定义:

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];


下面是一个监听onBeforeRequest事件的例子:

chrome.webRequest.onBeforeRequest.addListener(callback, filter, opt_extraInfoSpec);

manifest.json需要权限:

"permissions": [
  "webRequest",
  "webRequestBlocking",
  "tabs",
  "<all_urls>"
],

扩展示例和帮助链接:

相关问题