gpt4 book ai didi

firefox-addon - 从 main.js 打开页面并将数据传递给它

转载 作者:行者123 更新时间:2023-12-02 04:52:33 25 4
gpt4 key购买 nike

我正在尝试创建一个非常简单的测试插件,它只做一件事:从 main.js 打开一个 html 页面(位于数据文件夹中),然后向它传递一些可以显示的生成的 JSON。我想出了一个非常复杂的方法来使用消息传递和克隆 unsafeWindow.options 来做到这一点,但一定有更简单的方法吗?

附言。如果这是正确的方法,我很乐意使用“addon-page”模块......

最佳答案

一个用于打开选项卡的简单模板,然后在选项卡准备就绪时附加内容脚本、传递一些参数并设置消息处理程序:

在插件模块中:

var resourceURL=require("sdk/self").data.url;
require("sdk/tabs").open({
url:resourceURL("index.html"),
onReady:function(tab){
var worker=tab.attach({
contentScriptFile:["support.js","content.js"].map(resourceURL),
contentScriptOptions:{}, //parameters passed to content script
});
worker.port.on("ready",function(msgIn){
worker.port.emit("acknowledge",msgOut);
});
}
});

在内容脚本中;要发送“就绪”消息并接收“确认”消息:

self.port.on("acknowledge",function(msgIn){});
self.port.emit("ready",msgOut);

参数 url 和/或 contentScriptFile 的处理可能会发生变化,这样就允许相对路径而不需要 require("sdk/self") .data.url。不确定这是否只是推测/提议,或者目前是否已经实现;还没有检查。

此外,我认为 addon-page 已贬值并且自从升级到 australis UI 后就不再工作了(即导航栏不再为特殊 URI 隐藏,例如 about:addons).

关于firefox-addon - 从 main.js 打开页面并将数据传递给它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26634993/

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