gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 02:32:36 25 4
gpt4 key购买 nike

我正在尝试将大型二进制数据(例如 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com