Chrome扩展程序webRequest.onBeforeRequest

7
我正在尝试创建一个扩展程序来分析在Chrome浏览器上发出的请求,但我无法使其工作。警报从未触发。
manifest.json
{
  "name": "Test",
  "description": "Test",
  "version": "1.0",
  "manifest_version": 2,
  "permissions": ["background", "tabs", "webRequest", "webRequestBlocking", "*://*/*"],    
  "background": {
    "scripts": ["background.js"],
    "persistent": true
  }  
}

background.js

var callback = function(details) {
    alert("hello");
};
var filter = { "*://*/*" };
var opt_extraInfoSpec = [];

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

为什么我的警报没有触发?

2
请使用console.log,检查后台页面。我相当确定来自后台页面的alert实际上不会在任何地方显示。 - Dan Smith
但是如果我在此之后写入控制台,页面会重新加载,我就看不到它了。还有其他方法可以做到吗?如果我使用onBeforeSendHeaders,它会触发。 - Bonomi
1个回答

12

您的筛选器格式有误 - 它根本不是一个有效的对象。此外,它至少需要包含“url”属性。如果您想要所有URL,请使用以下内容:

您的过滤器格式有误 - 它根本不是一个有效的对象。此外,它至少需要包含“url”属性。如果您想要所有URL,请使用以下内容:

var filter = {urls: ["<all_urls>"]};

查看此内容以获取有关过滤器格式的详细信息:https://developer.chrome.com/extensions/webRequest#type-RequestFilter


只是好奇想知道,你在哪里找到了变量/占位符名称“<all_urls>”?尽管我无法在文档中找到它。 - Vreddhi Bhat
这里有一些额外的细节:https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeRequest - oatsoda
"<all_urls>" 在这里也有文档记录:https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Match_patterns - oatsoda
1
我花了一些时间在 Chrome 文档中找到关于 "<all_urls>" 的文档:https://developer.chrome.com/extensions/match_patterns - Cohen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接