本帖最后由 yingliu 于 2017-10-24 16:37 编辑
WebExtensions 简单来说就是一个用于开发各个浏览器附加组件的技术,开发者仅需要掌握 HTML、CSS、JavaScript 即可使用 WebExtensions 开发浏览器附件组件,Firefox 将在 57 的时候将只支持 WebExtensions 扩展,其他旧式类型的扩展(基于XUL、XPCOM、Add-on SDK)将全部取消支持,若你有旧式扩展需要迁移,可以阅读这篇文章
你可以在 MDN 中的 WebExtensions 主页找到关于 WebExtensions 的更多信息。
开发 WebExtensions
调试工具
通常建议使用 Developer Edition 版的 Firefox 进行 WebExtensions 的测试与开发,它允许你安装未签名的 .xpi (Firefox扩展程序)文件。
关于 .xpi 文件签名说明
Mozilla 官方维护了一个用于调试 WebExtensions 的 CLI 工具,可以实现一些方便快捷的功能(比如 WebExtensions 热加载):mozilla/web-ext
遇到问题
当你在开发过程中遇到一些意料之外的问题,你可以尝试在 Chrome 上运行你的 WebExtentions 代码 ,来对比二者的不同。若发现为 Firefox 实现的 bug,可以到 Bugzilla 上向 Firefox 进行反馈。
WebExtensions 还在不断发展中,若你有关于 WebExtensions 的想法,可以在 dev-addons 邮件列表或 IRC 上的 #webextensions 与 Mozilla 联系。
跨平台开发
使用 WebExtensions 开发跨平台的浏览器扩展程序十分容易,因为 WebExtension API 就是专为跨浏览器兼容而设计的。Firefox 的扩展程序 API(WebExtensions)与 Chrome 所支持的 extension API 有很大程度的兼容,Mozilla 官方甚至提供了一个 polyfill 来帮助开发者完成跨平台开发。
若你想从 Chrome 中移植扩展到 Firefox,可以阅读:
从 Google Chrome 移植
如何将Chrome Extension迁移到Firefox上
WebExtensions相关资料
在 MDN 上提供了关于 WebExtensions 方面的文档,不仅仅是 Firefox,你可以在大部分 API 中看详细的浏览器兼容标注。一些 API 仍在实现过程中。
MDN: WebExtensions 新手教程、相关概念
其他开发者在 Github 上收集的关于 WebExtensions 开发资源整合:
awesome-WebExtensions
awesome-browser-extensions-and-apps
|