【问题标题】:Using Add-on SDK to add toolbar buttons? Integrating XUL and Add-on SDK for Firefox Add-ons?使用 Add-on SDK 添加工具栏按钮?为 Firefox 附加组件集成 XUL 和附加 SDK?
【发布时间】:2011-10-06 04:23:48
【问题描述】:

我已经使用插件 SDK API 编写了大部分 Firefox 插件。我现在发现附加 SDK 可能不足以满足我的目的。我需要两件事:

  1. 位置栏旁边工具栏中的下拉按钮。
  2. 在 Firefox 中修改插件管理器

这确实令人失望,但我不相信附加 SDK 可以实现这些。

首先,我知道插件 SDK API 中有一个widget 模块。但这仅允许我在笨拙的附加栏上添加一个简单的图标或标签。如果我需要在 Firebug 或 Greasemonkey 的位置栏旁边添加一个更好的按钮怎么办?至于在firefox中修改插件管理器,我试过Nickolay Ponomarev's XUL with the Add-on SDK没有任何成功。如果有人知道如何让它工作并且可以指出我正确的方向,那将非常有帮助(cfx init --template xul 在我尝试时不会做任何常规 SDK 所做的事情)

【问题讨论】:

  • 插件应该将他们的图标添加到插件栏,这是从 Firefox 4 开始的所有扩展的官方建议。如果用户想要混乱他的其他工具栏,他可以自定义它们并拖动图标周围 - 这也适用于 SDK 附加组件。
  • 关于修改插件管理器:您绝对没有提供有关您要达到的目标的任何信息,而且一次问两个问题也不是一个好主意。我建议您编辑您的问题以仅询问工具栏按钮,并将附加管理器修改移动到一个单独的问题中。
  • @WladimirPalant 感谢您的建议。我认为许多 Firefox 用户仍然不习惯移动图标。恐怕人们不会喜欢我的附加菜单在附加栏上的默认位置,而会简单地将栏作为一个整体关闭,而不是经历重新定位的麻烦。
  • 值得注意的是,SDK项目承认目前的情况比较尴尬;我们对未来如何改进这一点有一些想法,特别是围绕位置栏 ui。我在 Firefox UX 中看到的一些新兴想法包含附加的 UI 可供性。

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


【解决方案1】:

你看过 Erik Vold 的工具栏按钮模块吗?

https://github.com/erikvold/toolbarbutton-jplib/

通过要求 chrome 权限可以访问 SDK 模块中所有 Firefox 的内部 api;它不会像 addon-kit 高级 API 那样简单。

【讨论】:

  • 这个没见过,不过看起来很有用。也许我也可以将其用作更改附加管理器的模型。谢谢!
  • 你当然可以用 SDK 模块修改 EM,我本来打算自己做的,所以如果你已经开始了,请告诉我!
  • (提供的链接已失效)
【解决方案2】:

上面引用的toolbarbuttonlib-jplib 已经不存在了,试试toolbarwidget-jplib。它就像一个魅力!救命稻草。

【讨论】:

    【解决方案3】:

    用 Jetpack 尝试了 Nickolay Ponomarev 的 XUL,但没有任何成功。如果有人知道如何让这个工作并能指出我正确的方向,那将非常有帮助(cfx init --template xul 在我尝试时不会做任何常规 sdk 所做的事情)

    我非常想听听您的尝试以及失败的具体原因的详细说明。我无法以目前的形式回答这个问题。

    我不相信 JetPack 可以实现这些。

    您的意思是只使用内置的高级 SDK 模块。可以编写一个使用 XPCOM 并直接与 chrome 代码交互以实现您需要的功能的低级 SDK 模块——毕竟这就是其余 SDK 模块的实现方式。如果你走这条路,你将失去 SDK 未来的兼容性承诺——你必须要么将它包含在上游 SDK 中,要么自己为更新的 Firefox 版本更新它。

    【讨论】:

    • 感谢您的回复。我从附加 sdk 的 github fork 下载了 1.0b1rc4 并运行了 source bin/activate。然后,当我在新文件夹中运行cfx init --template xul 时,我没有得到提到的extension 文件夹(除了lib、测试等)我没有得到“预生成文件”部分中提到的任何文件在基于 XUL 的附加组件中”,甚至没有对 package.json 文件的更改。说明看起来很清楚,但我没有得到预期的结果。
    • @Salami:好的,我怀疑下载步骤。你是用github页面上的“ZIP”按钮下载的吗?您可能已经下载了代码的“基本”版本,而不是 fork。试试github.com/nickolay/addon-sdk/zipball/…(或者用 git 克隆更好)。
    • 谢谢。您链接的这个 0.9 版本似乎运行良好
    • @Nickolay:-t xul--template xul 标志是否已被 --templatedir=xul 取代?
    • @SmileAndNod: 不,“--template xul”是我(过时的)fork 中cfx init 的参数; "templatedir" 可以在基线插件 sdk (addons.mozilla.org/en-US/developers/docs/sdk/1.0/dev-guide/…) 中与 cfx run/xpi 一起使用,并且我的 fork 在生成 xul 扩展时将 templatedir 属性添加到 package.json。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多