javascript - 阻止 webRequest 的 Chrome 扩展程序似乎根本不起作用

标签 javascript google-chrome google-chrome-extension

我只是想得到 MDN example chrome extension在职的。这是 manifest.json

{
  "description": "Altering HTTP responses",
  "manifest_version": 2,
  "name": "http-response-filter",
  "version": "1.0",
  "homepage_url":
    "https://github.com/mdn/webextensions-examples/tree/master/http-response",
  "icons": {
    "48": "SA-48x48.png"
  },

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

这里是 background.js

function listener(details) {
  console.log("******listen");
  let filter = browser.webRequest.filterResponseData(details.requestId);
  let decoder = new TextDecoder("utf-8");
  let encoder = new TextEncoder();

  filter.ondata = event => {
    let str = decoder.decode(event.data, { stream: true });
    // Just change any instance of Example in the HTTP response
    // to WebExtension Example.
    str = str.replace(/Example/g, "WebExtension Example");
    filter.write(encoder.encode(str));
    filter.disconnect();
  };

  return {};
}
console.log("******");
browser.webRequest.onBeforeRequest.addListener(
  listener,
  { urls: ["https://example.com/*"], types: ["main_frame"] },
  ["blocking"]
);

所以我希望它能

  • 在我加载 example.com 时输出几个 console.logs
  • 按照 MDN 人员的说法将“示例”修改为“WebExtension 示例”

然而,它对我来说根本不起作用(我使用的是 Chrome,我将它作为未打包的扩展添加到我的扩展中,我之前做过其他 chrome 扩展,但这是我第一次做后台脚本) .

是否有什么东西阻止了这个后台脚本的运行?我只是没有以正确的方式配置它吗?请指出正确的方向,非常感谢。

最佳答案

您的 Chrome 扩展程序需要“请求”使用 webRequest API 的权限,以便扩展程序的用户会收到扩展程序可以执行的操作的通知。

尝试将此添加到您的 manifest.json:

"permissions": [
    "webRequest",
    "webRequestBlocking"
]

关于javascript - 阻止 webRequest 的 Chrome 扩展程序似乎根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47671157/

相关文章:

javascript - Chart.js - 创建自定义图表类型

google-chrome - 几秒钟后阻止chrome.notifications API隐藏我的通知

google-chrome-extension - webRequest权限格式错误

javascript - 如何删除html前面的字符串?

javascript - 为页面标题提供默认值

jquery - 带边距的可拖动功能仅在 Chromium 中无法正常工作

javascript - 如何检测访问者使用的是 HTTP/2 还是 SPDY?

javascript - http 和 https 的 localStorage 相同吗?

javascript - 如何检测焦点何时超出 Div?

我网站的 CSS 在 chrome 中损坏