javascript - 将二进制数据从网页传递到 Firefox 扩展

标签 javascript firefox-addon

我正在尝试将大型二进制数据(例如 new Uint8Array(10000000))从网页的 JavaScript (JS) 传递到扩展的 JS。我希望通过 nsIBinaryOutputStream/nsIFile (我无法从我的页面调用)将这些数据从扩展名保存到文件中。 [ATM 我不知道任何其他方法如何从本地计算机上的页面 JS 保存(大/二进制)数据。]

我对 Interaction between privileged and non-privileged pages 很生气,但它仅对传递字符串有用。我不认为将 10MB 转换为 Base64 是个好主意。

  • 是否可以将此类数据传递给扩展程序?
  • 如果是的话,该怎么办?
  • 我不应该使用 JS XPCOM component

感谢您的建议。

最佳答案

好的,我已经解决了如何将任何对象从网页传递到扩展程序。

在网页 JavaScript (JS) 中:

var element = document.createElement("foo");
document.documentElement.appendChild(element);
var event = document.createEvent("CustomEvent");
event.initCustomEvent("bar", true, false, anyObject);
element.dispatchEvent(event);

在扩展 JS 中:

document.addEventListener("bar", function(e) {
  // use e.detail here
 }, false, true);

Proof of concept here.

关于javascript - 将二进制数据从网页传递到 Firefox 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13915379/

相关文章:

javascript - 使用 self.port.on 时,Firefox 内容脚本中的变量未更新

javascript - 将插件窗口附加到 Firefox 浏览器窗口

javascript - Firefox 扩展,如何从 main.js 调用侧边栏中的函数

javascript - 从 XmlHttpRequest.responseJSON 解析 JSON

javascript - 我正在寻找类似下面链接的 Flash 或 JavaScript 幻灯片

javascript - 为 HTML 表单中的 select 元素定义值类型

javascript - 当 Electron 应用程序打包在 asar 中时使用 require

javascript - 在 firefox 或 chrome 中获取 <img> 二进制文件,无需发出新请求

javascript - 正则表达式返回未定义

javascript - 在 Nativescript 中从本地 PC 加载 JSON 文件