我只是想让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
然而,它对我来说根本不起作用(我使用的是Chrome,我将它作为解压缩的扩展程序添加到我的扩展程序中,之前我已经完成了其他Chrome扩展程序,但这是我第一次这样做背景脚本)。
是否有可能阻止此后台脚本运行?我没有以正确的方式配置它吗?请指出我正确的方向,非常感谢。
答案 0 :(得分:2)
您的Chrome扩展程序需要“询问”使用webRequest API的权限,以便扩展程序的用户可以获得扩展程序可以执行的操作。
尝试将此添加到您的manifest.json
:
"permissions": [
"webRequest",
"webRequestBlocking"
]