3

我试图遵循此处给出的 webRequest 示例。这个简单的扩展应该将所有请求记录到控制台,但它没有这样做。在我的实际代码中,我包含了一行将页面的边框颜色更改为红色并且确实有效,因此我知道扩展代码正在运行。

要加载我要去的扩展about:debugging并通过Load Temporary Add-on按钮加载它

这是我的实际代码

清单.json

{
    "description": "something something dark side",
    "manifest_version": 2,
    "name": "Interceptz",
    "version": "1.0",
    "icons": {
        "48": "icons/border-48.png"
    },

    "applications": {
        "gecko": {
            "id": "borderify@mozilla.org",
            "strict_min_version": "45.0"
        }
    },

    "permissions": [
        "webRequest",
    "*://*.mozilla.com/"
    ],

    "content_scripts": [
        {
            "matches": ["*://*.mozilla.org/*"],
            "js": ["intercept.js"]
        }
    ]
}

如您所见,我已经从 mozilla 页面上给出的示例中更改了清单,因为复制和粘贴该 json 而不进行任何更改会导致 firefox 甚至不加载扩展

拦截.js

document.body.style.border = "5px solid red";

function logURL(requestDetails) {
  console.log("Loading: " + requestDetails.url);
}

chrome.webRequest.onBeforeRequest.addListener(
  logURL,
  {urls: ["<all_urls>"]}
);

在此处输入图像描述

4

2 回答 2

3

您不能将 webRequest API 放在内容脚本中。您需要分离您的intercept.js,将 manifest.js 重命名manifest.json修复权限。

清单.json

{
"description": "something something dark side",
"manifest_version": 2,
"name": "Interceptz",
"version": "1.0",
"icons": {
    "48": "icons/border-48.png"
},

"applications": {
    "gecko": {
        "id": "borderify@mozilla.org",
        "strict_min_version": "45.0"
    }
},

"permissions": [
    "webRequest"
],

"background": {
  "scripts": ["background.js"]
 },

"content_scripts": [
    {
        "matches": ["*://*.mozilla.org/*"],
        "js": ["intercept.js"]
    }
]
}

拦截.js

document.body.style.border = "5px solid red";

背景.js

function logURL(requestDetails) {
  console.log("Loading: " + requestDetails.url);
}

chrome.webRequest.onBeforeRequest.addListener(
  logURL,
  {urls: ["<all_urls>"]}
);

当然,添加 /icons/border-48.png

于 2016-07-18T12:42:20.887 回答
0

Mozilla 原始教程中的棘手部分是替换这一行:

browser.webRequest.onBeforeRequest.addListener

用这条线:

window.chrome.webRequest.onBeforeRequest.addListener(

删除插件,重新启动浏览器,然后再次添加插件。在此处查看一个工作示例

于 2021-05-14T05:07:05.117 回答