是否可以修改使用XUL编写的firefox插件和使用Addon SDK编写的插件

时间:2013-09-11 17:27:15

标签: firefox firefox-addon xul firefox-addon-sdk

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

谢谢!

1 个答案:

答案 0 :(得分:5)

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

如何操作取决于您尝试扩展的实际加载项的实现。因此,我只能给你一些一般的指示/注释:

  • 您可以使用XUL叠加来添加XUL窗口/叠加层,就像您可能有browser.xul或其他核心代码一样。
  • 当然,您也可以使用DOM API来操纵任何第三方XUL DOM。
  • 您可以在Javascript中monkey-patch全局函数和对象和/或替换/包装大多数XPCOM组件。
  • 附加SDK无法使用叠加层。因此,您必须使用window/utils或类似的方法来访问XUL窗口,并且可以使用那里的DOM API。
  • 如果你真的需要,有一些方法可以在Javascript代码模块中修补代码:
  • 对SDK模块和/或内容脚本进行猴子修补非常困难,而且非常脆弱。
  • 向附加组件的作者提供帮助,反馈或仅用于单挑是一件好事。通常,作者可能甚至愿意公开自己的扩展API,以使其附加组件更容易扩展。例如。我过去创建了这样的API,还有其他作者为我创建了API。