开发Firefox扩展最简单的方法是什么?

我打算开发一个简单的Firefox扩展,它将缩短当前活动选项卡的URL,显示带有缩短URL的popup窗口,并将其放入剪贴板。

在谷歌浏览器中,这将是非常简单的(根据http://developer.chrome.com/extensions/getstarted.html ) – 纯粹的JavaScript加上一些JavaScript API与浏览器UI交互的调用。

然而,在search一个好的Firefox扩展教程后,我发现最正式的链接是:

  • https://developer.mozilla.org/en-US/docs/Extensions
  • https://developer.mozilla.org/en-US/docs/Building_an_Extension
  • 我如何编写一个Firefox插件?

根据他们的说法,即使与浏览器的用户界面进行最简单的交互,我也需要学习XUL语言。 最重要的是,我将不得不设置自定义的Firefoxconfiguration文件,以免在开发过程中使用默认的configuration文件,创build复杂的目录结构,在不明确的XML中编写清单,了解如何打包和testing我实现的任何内容等。

这是2013年,是不是有一个更简单的方法来构buildFirefox扩展?

这是2013年,是不是有一个更简单的方法来构buildFirefox扩展?

就在这里!

你在这个问题中提供的链接是令人难以置信的过时的。 有一个新的,更好的方式来开发Firefox扩展 – Firefox附加SDK

然而,通过googling的“firefox插件教程”,很难find它。 我很惊讶Mozilla不会更积极地宣传它,或者至less在你find的那些网页上提到它。

开始的步骤 (Mac / Linux,但应该与PC非常相似):

  • https://addons.mozilla.org/en-US/developers/builder下载SDK,将其解压缩。;
  • 快速浏览自述文件​​(始终有用)。
  • 从SDK目录执行source bin/activate (与README文件相同的目录)。
  • 执行cfx docs – 这会引导SDK文档的本地副本,并在您的浏览器中打开它。
  • 离开SDK目录,为你的扩展创build一个空的目录。
  • 在扩展名dir内执行cfx init – 这将生成所有必需的文件/目录。
  • 按照下面的get-started-with-cfx页面:
    • 使用JS的几行更新lib/main.js ,将自定义小部件放置到附加栏上。
    • 执行cfx run – 这将打开新的Firefox实例,并在其中添加新的扩展名。

总而言之,我只花了几个小时的时间阅读文档,熟悉SDK API-s,findSDK 模块将一个小部件放置到导航栏上而不是附加栏上,然后开发全function的扩展只有大约50行的JavaScript。

HTH!

更新

有一个新的标准叫做WebExtensions

来自MDN

目前有几个工具包用于开发Firefox附加组件,但WebExtensions将在2017年底之前成为标准。

如果您正在编写新的附加组件, 我们build议您编写WebExtension

是的,您可以使用三种不同的技术来构build扩展:

  1. 附加的基于SDK的扩展
  2. 手动引导重启扩展
  3. 覆盖扩展

你可以在这里阅读比较

如果可以的话,build议使用附加SDK,该附加SDK使用重启扩展机制,但是可以简化某些任务并自行清理。 如果附加SDK不足以满足您的需求,请改为手动重新启动扩展。

开始使用基于SDK的扩展插件的步骤

  1. 安装
    • 在OS X,FreeBSD,Linux上安装
    • 使用Homebrew在OS X上安装
    • 在Windows上安装
  2. 创build用户界面
  3. 与浏览器交互

截至https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/ ,未来的唯一方法是使用WebExtensions 。 Firefox 52将接受最后一个SDK扩展,而Firefox 57将终止所有其他扩展支持 ,仅支持WebExtensions。

Firefox复制了Google Chrome的扩展程序API。 所以,你可以使用你的Chrome扩展 ,看看是否所有的API已经在Firefox支持(他们应该是现在)。 NoScript的Giorgio Maone等程序员积极支持对WebExtensions的更改 。

要开发WebExtension,您需要

  • 可以通过安装的web-ext tool

     npm install --global web-ext 
  • 或者简单地使用Firefox的about:debugging或Chromium的chrome:extensions来暂时加载webextension。

无论如何,您需要在由您创build的目录中有一个manifest.json文件,它将所有function粘合在一起。 有关第一个示例,请参阅https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_first_WebExtension 。 或https://developer.chrome.com/getstarted上的Google文档。;

两种官方的方式来开发插件,每种都有优点和缺点:

1- WebExtensions(更新的方法):

WebExtensions是Firefox加载项的未来。 如果您可以使用WebExtensions API,这是最好的select。 您现在可以开发和发布WebExtensions,但它们仍处于早期状态。

2-附加SDK(旧方法):

附加SDK提供了用于开发Firefox附件的API,以及用于开发,testing和打包的工具。

我做了一个使用Firefox插件SDK开发扩展的教程:

如何使用addon SDK开发Firefox扩展