0

背景资料:

在过去的一周里,我一直在玩弄 Chrome 扩展程序,并且创建我的扩展程序没有问题。太好了,Chrome 让开发过程变得非常容易学习,而且,嗯……很简单!

现在我有一个想法,我想为尽可能多的浏览器创建这个扩展,所以我接下来决定使用 Firefox。

真是一团糟!到目前为止,文档除了让我头疼并浪费我的时间之外什么也没做,非常令人费解,而且通常没有组织。

我已经设法找到了一个简单扩展的代码示例,我认为我可以将其用作起点并开始搞乱 - 很好......

我了解到,这个示例扩展不适用于低于 Firefox 4 的任何版本,因为它使用引导技术使扩展无需重新启动浏览器即可安装。呃呃呃……

现在我们来回答我的问题:

  1. 是否可以为 Firefox 7 开发一个可以与以前版本的 Firefox 一起使用的扩展?我什至不关心 Firefox 4 之前的任何事情,如果那是无重启安装的截止点。很高兴知道我花了这么多时间制作的东西将持续工作一个多星期,当提示用户下次升级时。

  2. 反过来呢?我可以创建一个与 Firefox 3.5 到 Firefox 7 兼容的扩展吗?我意识到它需要重新启动才能安装,但如果它导致无论版本如何都能工作扩展,那将是可以接受的。

  3. 任何有这方面经验的人都可以分享一下我在这里所做的事情吗?看起来这是一个开发平台的噩梦,我将不断修复我的扩展。

最后一条相关信息:

我正在开发的扩展纯粹是基于javascript的——这些东西应该可以工作(我认为?)因为它只依赖于一个特性“内容脚本”,此时在版本之间的实现中确实不应该改变......对吗?

那么我到底错过了什么?您如何创建可在所有版本的浏览器中运行的易于管理的 Firefox 扩展?

谢谢大家!:)

4

1 回答 1

2

您必须区分“传统”扩展和使用附加 SDK构建的扩展。前者的功能要强大得多,因为它们可以直接访问浏览器使用的所有 API - 但这也是它们编写起来更复杂以及文档相当无序的原因(您可以做的事情非常多,远远超过您使用 Chrome 所能做到的)。随着浏览器的变化,它们也更有可能中断。另一方面,附加 SDK 为您提供了一个类似于 Chrome 的有限 API。Add-on SDK 目前支持从 Firefox 4 开始的所有内容(是的,因为无需重新启动安装),并承诺浏览器更改只需要使用更新版本的 Add-on SDK 重新编译您的插件。事实上,重新编译对于托管在 addons.mozilla.org 上的附加组件,将来可能会自动发生。关于你的问题:

是否可以为 Firefox 7 开发一个可以与以前版本的 Firefox 一起使用的扩展?

是的。附加组件 SDK 目前将您的附加组件标记为与 Firefox 4 Beta 7 和 Firefox 8 Alpha 1 之间的任何内容兼容。即使是传统的附加组件 - 从 Firefox 4 开始,特定浏览器版本之间的差异相当小,大多数事情在所有人中工作。您还可以与 Firefox 3.x 保持兼容,但根据您的操作,可能需要一些努力。重要信息:

反过来呢?我可以创建一个与 Firefox 3.5 到 Firefox 7 兼容的扩展吗?

你走哪条路并不重要。但是,我不建议在 Firefox 3.x 支持上花费太多时间。随着 Firefox 3.5 不再受支持,唯一相关的版本是 Firefox 3.6。根据我的附加组件的统计,大约 18% 的 Firefox 用户继续使用它。在接下来的几个月里,这个百分比将显着降低,尤其是当 Mozilla 宣布该分支的生命周期结束时。所以对于一个新的插件支持它通常是不合理的。

任何有这方面经验的人都可以分享一下我在这里所做的事情吗?

取决于您的附加组件的复杂程度。鉴于您正在开发与 Chrome 扩展程序等效的应用程序,您很可能会使用附加 SDK,这意味着不会有任何兼容性问题。与传统的附加组件一样,不依赖于一些晦涩的实现细节的简单附加组件通常也不会在保持兼容方面遇到任何问题(我有两个附加组件,自 Firefox 3.5 以来不需要一次调整) . 当然,深入到系统中的附加组件问题更大。

于 2011-10-05T05:47:03.027 回答