Использование Add-on SDK для добавления кнопок на панели инструментов? Интеграция XUL и Add-on SDK для надстроек Firefox?
Я уже закодировал большую часть надстройки Firefox, используя API-интерфейс Add-on SDK. Теперь я обнаруживаю, что SDK Add-on может оказаться недостаточно мощным для моих целей. Мне нужны две вещи:
- Выпадающая кнопка на панели инструментов рядом с панелью местоположений.
- Чтобы изменить менеджер надстроек в firefox
Это действительно разочаровывает, но я не считаю, что это возможно с помощью Add-on SDK.
Прежде всего, я понимаю, что в API-интерфейсе Add-on SDK есть модуль widget
. Но это только позволяет мне добавить простую иконку или ярлык в неудобную панель надстройки. Что делать, если мне нужно добавить более удобную кнопку, например, рядом с панелью местоположений Firebug или Greasemonkey? Что касается модификации менеджера надстроек в firefox, я пробовал Nickolay Ponomarev XUL с SDK Add-on без каких-либо успехов. Если кто-то знает, как это сделать, и может указать мне в правильном направлении, что было бы очень полезно (cfx init --template xul
не делает ничего, что делает обычный SDK при попытке)
Ответы
Ответ 1
Вы посмотрели на панель инструментов панели инструментов Эрика Вольда?
https://github.com/erikvold/toolbarbutton-jplib/
Можно получить доступ ко всем внутренним apis Firefox в SDK-модулях, требуя привилегии chrome; это просто не будет так просто, как apis с высоким уровнем аддона.
Ответ 2
Указанный выше toolbarbuttonlib-jplib больше не существует, но попробуйте toolbarwidget-jplib. Отлично работает! Полная спасательная жизнь.
Ответ 3
попробовал Nickolay Ponomarev XUL с Jetpack без каких-либо успехов. Если кто-то знает, как это сделать, и может указать мне в правильном направлении, что было бы очень полезно (cfx init -template xul не делает ничего, что делает обычный sdk при попытке)
Я очень хотел бы услышать подробное описание того, что вы пробовали, и как именно он потерпел неудачу. Я не могу ответить на вопрос в его текущей форме.
Я не считаю, что это возможно с помощью JetPack.
Вы имеете в виду использование только встроенных SDK-модулей высокого уровня. Возможно написать низкоуровневый SDK-модуль, который использует XPCOM и взаимодействует с хром-кодом непосредственно для реализации функций, которые вам нужны - после всего того, как реализованы остальные модули SDK. Если вы пройдете этот маршрут, вы потеряете обещание по совместимости с SDK, но вам придется либо включить его в SDK вверх, либо обновить его для новых версий Firefox.