火狐 browser.webRequest.onBeforeSendHeaders。不知道为什么什么都没有发生
Firefox browser.webRequest.onBeforeSendHeaders. No Clue why nothing happens
所以,这是关于浏览器的扩展,并试图拦截 Headers 并在发出 GET 请求之前与它们交互。
我只是想尝试一些新东西,想尝试一下 webRequest.onBefoerSendHeaders,但它似乎什么也没做。
如果某个 header 存在,我只想将某些内容记录到控制台。
这是我的代码:
var requestFilter = {
urls: ["random Site"]
}
var extraInfoSpec = ['requestHeaders', 'blocking']
handler = function(details) {
var headers = details.requestHeaders;
for (var i = 0, l = headers.length; i < l; ++i) {
if (headers[i].name == 'User-Agent') {
console.log("It works!")
break;
}
}
};
browser.webRequest.onBeforeSendHeaders.addListener(handler, requestFilter, extraInfoSpec);
这是清单:
{
"manifest_version": 2,
"name": "test",
"version": "1.0",
"description": "test",
"icons": {
"48": "empty"
},
"content_scripts": [
{
"matches": ["*://random Site/*"],
"js": ["header.js"]
}
],
"permissions": [
"webRequest",
"webRequestBlocking",
"<all_urls>",
]}
我知道有一些未使用的权限和指定的 URL 等不存在。
有人知道为什么它什么都不做吗?在 Firefox 和 Chrom 中应该是 运行。
根据您的 manifest
文件,您似乎正试图将 webRequest
API 与内容脚本一起使用。但是 browser.webRequest
不适用于内容脚本,需要将其转换为后台脚本才能工作。
我建议删除内容脚本配置并将代码配置为 运行 作为后台脚本。
"background": {
"scripts": ["header.js"]
},
所以,这是关于浏览器的扩展,并试图拦截 Headers 并在发出 GET 请求之前与它们交互。 我只是想尝试一些新东西,想尝试一下 webRequest.onBefoerSendHeaders,但它似乎什么也没做。
如果某个 header 存在,我只想将某些内容记录到控制台。 这是我的代码:
var requestFilter = {
urls: ["random Site"]
}
var extraInfoSpec = ['requestHeaders', 'blocking']
handler = function(details) {
var headers = details.requestHeaders;
for (var i = 0, l = headers.length; i < l; ++i) {
if (headers[i].name == 'User-Agent') {
console.log("It works!")
break;
}
}
};
browser.webRequest.onBeforeSendHeaders.addListener(handler, requestFilter, extraInfoSpec);
这是清单:
{
"manifest_version": 2,
"name": "test",
"version": "1.0",
"description": "test",
"icons": {
"48": "empty"
},
"content_scripts": [
{
"matches": ["*://random Site/*"],
"js": ["header.js"]
}
],
"permissions": [
"webRequest",
"webRequestBlocking",
"<all_urls>",
]}
我知道有一些未使用的权限和指定的 URL 等不存在。
有人知道为什么它什么都不做吗?在 Firefox 和 Chrom 中应该是 运行。
根据您的 manifest
文件,您似乎正试图将 webRequest
API 与内容脚本一起使用。但是 browser.webRequest
不适用于内容脚本,需要将其转换为后台脚本才能工作。
我建议删除内容脚本配置并将代码配置为 运行 作为后台脚本。
"background": {
"scripts": ["header.js"]
},