0

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

目前,我在 chrome.manifest 中用 MyPlugin 的 xul 覆盖 MainExtension 的 xul。在 MyPlugin 的 xul 中,一个标签调用一个 .js 文件,该文件定义MainExtension.MyPlugin了覆盖层元素可以调用的所有方法。

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

4

1 回答 1

0

所以我在我的扩展上做了更多的工作,阅读了更多的在线文档,并咨询了一些更有经验的开发人员,而我现在得到的解决方案是使用模块来定义我的扩展的一些基本内部部分。我在模块中创建了一个 MyPlugin 对象,然后通过使用模块对 Firefox 通用。然后使用 MainExtension 的 xul 覆盖层调用的脚本,我创建了另一个 chrome 对象(称为例如 MyPluginChrome),它仅包含与与 MainExtension 的 XUL 元素交互相关的函数。当问这个问题时,我虽然有必要定义一个 XPCOM 组件以使我的插件独立,这对于我的简单插件到现有扩展来说似乎有点矫枉过正,

为了学习如何执行上述操作,我使用了 Mozilla Developer Network 站点上XUL School 教程中的JavaScript 对象管理页面。本教程有点古怪(因为它是从另一个来源改编的)但非常有帮助。它也与 MDN 上的构建扩展页面分开。其他几个较旧的网页在 Google 上的点击率更高,但我发现 XUL School 教程信息量最大且最有用。

于 2012-11-08T22:50:30.167 回答