Каков самый простой способ разработки расширения Firefox?
Я планирую разработать простое расширение Firefox, которое сократит URL-адрес текущей активной вкладки, отобразит всплывающее окно с укороченным URL-адресом и поместит его в буфер обмена.
в Google Chrome это было бы довольно легко (согласно http://developer.chrome.com/extensions/getstarted.html) -- чистый JavaScript плюс несколько вызовов JavaScript API-s взаимодействия с пользовательским интерфейсом браузера.
однако, после поиска вокруг для хорошего Firefox учебник расширений, наиболее официально выглядящие ссылки, которые я нашел:
- https://developer.mozilla.org/en-US/docs/Extensions
- https://developer.mozilla.org/en-US/docs/Building_an_Extension
- Как написать Firefox аддон?
по их словам, похоже, что мне придется изучать язык XUL даже для самых простых взаимодействий с пользовательским интерфейсом браузера. Вдобавок ко всему, Мне нужно будет настроить пользовательский профиль Firefox, чтобы не использовать мой профиль по умолчанию во время разработки, создать сложную структуру каталогов, написать манифест в неясном XML, выяснить, как упаковать и протестировать все, что я реализую, и т. д.
Это 2013 год, разве нет более простого способа создания расширений Firefox?
5 ответов:
это 2013 год, разве нет более простого способа создания расширений Firefox?
Да есть!
ссылки, которые вы предоставили в вопросе, невероятно устарели. Есть новый, гораздо лучший способ разработки расширений Firefox -- Firefox Add-on SDK.
однако довольно трудно наткнуться на него, просто погуглив по строкам "firefox addon tutorial". Я поражен, что Mozilla не рекламирует это более агрессивно, или, по крайней мере, упомянуть об этом на тех страницах, которые вы нашли.
действия (Mac / Linux, но должно быть очень похоже на ПК):
- загрузите SDK из https://addons.mozilla.org/en-US/developers/builder, распакуйте его.
- быстро просмотрите файл README (всегда полезно).
- выполнить
source bin/activate
из SDK dir (тот же самый dir, в котором находится файл README).- выполнить
cfx docs
-- это загрузочная локальная копия SDK docs и открывает его в браузере.- оставьте SDK dir, создайте пустой dir для вашего расширения.
- выполнить
cfx init
внутри расширений dir -- это создает все необходимые файлы / каталоги.- следуйте за остальными начало работы с cfx страница:
- обновление
lib/main.js
С помощью всего нескольких строк JS, чтобы разместить пользовательский виджет на надстройку бар.- выполнить
cfx run
-- это открывает свежий экземпляр Firefox с вашим новым блестящим расширением в нем.в целом, мне потребовалось всего несколько часов, чтобы прочитать документацию, ознакомиться с SDK API-s, найти SDK модуль чтобы разместить виджет на панели навигации вместо панели надстроек и разработать полнофункциональное расширение всего за 50 строк Яваскрипт.
НТН!
обновление
есть новый стандарт, называется WebExtensions
С MDN
в настоящее время существует несколько наборов инструментов для разработки дополнений Firefox, но WebExtensions станет стандартом к концу 2017 года.
если вы пишете новое дополнение,мы рекомендуем вам написать WebExtension.
Да есть три различных методов, которые можно использовать для создания расширений:
- дополнительные расширения на основе SDK
- вручную загруженные restartless расширения
- оверлея расширения
вы можете прочитать сравнения между здесь
Если вы можете, рекомендуется использовать дополнительный SDK, который использует безостановочный механизм выдвижения но упрощает определенные задачи и убирает за собой. Если добавить-на пакет SDK не достаточно для вашего вместо этого необходимо реализовать ручное расширение restartless.
шаги чтобы начать с дополнительные расширения на основе SDK
по состоянию на https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/, единственный способ идти вперед будет использовать WebExtensions. Последние расширения SDK будут приняты для Firefox 52, в то время как Firefox 57 прекратит поддержку всех других расширений, поддерживает только WebExtensions.
Firefox скопировал API расширения Google Chrome. Так что вы могли бы просто используйте расширение Chrome и посмотреть, если все API уже поддерживается в Firefox (они должны быть на данный момент). Программисты, такие как NoScriptДжорджио Маоне активно поддерживаю переход на WebExtensions.
чтобы разработать WebExtension, вам нужно
или
web-ext
инструмент это можно установить черезnpm install --global web-ext
или просто используйте Firefox
about:debugging
или хромchrome:extensions
для временной загрузки webextension.в любом случае, вам нужен
manifest.json
файл в созданном вами каталоге, который склеивает все функциональные возможности вместе. Смотрите https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_first_WebExtension для первого примера. Или Документы Google в https://developer.chrome.com/getstarted.
здесь два официальных способа для разработки дополнений, каждый из них имеет свои плюсы и минусы:
1 - WebExtensions (новый метод):
WebExtensions-это будущее надстроек Firefox. Если вы можете использовать API WebExtensions, это лучший выбор. Вы можете разрабатывать и публиковать веб-расширения прямо сейчас, но они все еще находятся в раннем состоянии.
add-on SDK предоставляет API для разработки надстроек Firefox и инструмент для их разработки, тестирования и упаковки.