Firefox addon 为Firefox扩展定义插件的正确方法

Firefox addon 为Firefox扩展定义插件的正确方法,firefox-addon,xul,Firefox Addon,Xul,我编写了一个Firefox扩展(MyPlugin),它为另一个Firefox扩展(MainExtension)添加了一些功能。我想把它放在Mozilla插件页面上,但我想首先检查一下构造这种扩展的最佳方法 目前,我在chrome.manifest中将maintension的xul与MyPlugin的xul覆盖在一起。在MyPlugin的xul中,一个标记调用一个.js文件,该文件定义了maintension.MyPlugin及其所有可由覆盖元素调用的方法 这个设置本身可以吗?当我第一次尝试将插件

我编写了一个Firefox扩展(MyPlugin),它为另一个Firefox扩展(MainExtension)添加了一些功能。我想把它放在Mozilla插件页面上,但我想首先检查一下构造这种扩展的最佳方法

目前,我在chrome.manifest中将maintension的xul与MyPlugin的xul覆盖在一起。在MyPlugin的xul中,一个标记调用一个.js文件,该文件定义了
maintension.MyPlugin
及其所有可由覆盖元素调用的方法


这个设置本身可以吗?当我第一次尝试将插件上传到Mozilla加载项页面时,我发现install.rdf的“requires”元素不再受支持。我一直在想,这将负责检查MainExtension是否已实际安装。我应该在我的插件中输入任何错误检查以确保安装了MainExtension吗?我认为如果没有安装MainExtension,chrome.manifest中的覆盖行现在就会失败,然后就不会发生其他任何事情,这似乎很好。从功能上讲,我不打算在没有主扩展的情况下安装插件,所以这不应该是一个问题,但是因为我想把扩展发布到其他人可以下载的地方,我想确保我没有给他们造成任何问题(我对Firefox扩展结构不太熟悉——我主要是通过查看其他已发布的扩展来组合我的扩展).

因此,我在扩展上做了更多的工作,在线阅读了更多文档,并咨询了一些经验丰富的开发人员,目前的解决方案是使用模块来定义扩展的一些基本内部部分。我在模块中创建了一个MyPlugin对象,然后使用模块对Firefox通用然后用maintextension的xul覆盖调用的脚本创建另一个chrome对象(例如MyPluginChrome)这只包含与MainExtension的XUL元素交互相关的功能。当我提出这个问题时,我认为有必要定义一个XPCOM组件,以使我的插件独立,这对于我现有扩展的简单插件来说似乎是太过了,但使用模块使插件独立,而不是m这和我过去做事的方式大不相同

为了学习如何完成上面所述,我使用了Mozilla开发者网络站点上的页面但是非常有用。它与MDN的页面是分开的。其他一些旧的网页在Google上的点击率更高,但我发现XUL学校的教程是信息量最大、最有用的