1

我想编写一个增强现有插件的插件(例如,添加一个选项对话框)。我不想直接修改原始插件的代码。我希望的原始插件是使用 XUL 编写的。这是否意味着我也必须使用 XUL 编写我的插件?或者我可以使用更新的插件 SDK 吗?

谢谢!

4

1 回答 1

5

是的,可以扩展其他附加组件。实际上有很多插件可以扩展或与其他插件交互,例如 Element Hiding Helper 扩展 Adblock Plus 和许多 Firebug 插件。

如何做到这一点取决于您尝试扩展的实际附加组件的实现。因此,我只能给您一些一般性的指示/注意事项:

  • 您可以将 XUL 叠加层添加到附加的 XUL 窗口/叠加层中,就像您可能有一些 forbrowser.xul或其他核心代码一样。
  • 当然,您也可以使用 DOM API 来操作任何第三方 XUL DOM。
  • 您可以在 Javascript 中对全局函数和对象进行猴子补丁和/或替换/包装大多数 XPCOM 组件。
  • 附加 SDK 不能使用叠加层。因此,您必须使用window/utils或类似的方式来访问 XUL 窗口,并且可以从那里使用 DOM API。
  • 有一些方法可以在 Javascript 代码模块中修补代码,如果你真的必须...
  • 根据我的记忆,SDK 模块和/或内容脚本的猴子补丁非常困难且非常脆弱。
  • 联系插件的作者寻求帮助、反馈或只是为了提醒总是好的。通常,作者甚至可能愿意公开他们自己的扩展 API,以使他们的附加组件更易于扩展。例如,我过去创建了这样的 API,也让其他作者为我创建了 API。
于 2013-09-11T17:50:31.877 回答