Kam*_*lin 5 javascript firefox mozilla firefox-addon firefox-addon-webextensions
在使用Firefox WebExtensions期间,我创建了一个简单的附加组件,可以取消某些POST请求并读取其参数:
的manifest.json
{
"description": "Canceled webRequests data",
"manifest_version": 2,
"name": "webRequest-demo",
"version": "1.0",
"permissions": [
"webRequest",
"webRequestBlocking",
"http://kamil.hism.ru/pocs/*"
],
"background": {
"scripts": ["background.js"]
}
}
Run Code Online (Sandbox Code Playgroud)
background.js
var pattern = "http://kamil.hism.ru/pocs/simple_form_action";
function cancel(requestDetails) {
console.log("Canceling: " + requestDetails.url);
console.log(requestDetails.requestBody.formData.some_field)
// debugger
return { cancel: true };
}
browser.webRequest.onBeforeRequest.addListener(
cancel,
{ urls:[pattern] },
["requestBody", "blocking"]
);
Run Code Online (Sandbox Code Playgroud)
带有表单的目标页面位于: http://kamil.hism.ru/pocs/simple_form.html
requestDetails包含requestBody应包含formData所有传递数据的对象.在Chrome中,它运行良好,但在Firefox requestBody中只包含raw带有ArrayBuffer对象的数组.我试图将它转换为字符串使用String.fromCharCode.apply(null, new Uint16Array(requestDetails.requestBody.raw[0]));,但它返回空字符串.
所以,问题是:有没有人知道如何使用Firefox WebExtension插件解决该问题并从取消的请求中获取所有数据?也许这是Mozilla实现WebExtensions的一些错误?
在 Mozilla 社区的帮助下,事实证明这实际上是 Firefox WebExtensions 中的一个错误。虽然我在 bugzilla 中找不到与其相关的确切发行说明或错误,但Firefox Nightly build (53.0a) 没有这个问题:
希望 Nightly 的这些更改很快就会合并到 Release 通道中。
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |