Я использую mozilla-addon-sdk и инструмент cfx для создания расширения Firefox.расширение firefox не отображается в любом меню, но, кажется, установлено
Расширение показывает только ту кнопку переключения, которая обычно отображается в меню панели инструментов.
Все работает хорошо, когда я запускаю расширение с помощью этой команды:
$ cfx run
Но если я сгенерировать файл XPI так:
$ cfx xpi
и попытаться установить мое расширение вручную из этого файл, даже если firefox сообщает мне, что установка в порядке, я не вижу его ни в одной панели инструментов/меню. Однако расширение указано в списке модулей firefox.
Я опубликовал его в магазине, и проблема не устранена, и нет доступа к нему из любого меню.
Я думаю о том, что что-то не так происходит в генерации xpi, но я не могу найти что.
Я также подумал, может быть, я должен добавить код, чтобы автоматически поместить кнопку переключения где-нибудь на панели инструментов, но я не смог найти ничего, что могло бы решить мою проблему. И даже если я расширение должно поместить себя в панель инструментов с некоторым дополнительным кодом, почему он работает при запуске из cfx?
Любая идея?
[обновление] здесь код, который я использую.
manifest.json:
{
"name": "firefox-extension",
"title": "...",
"id": "...",
"description": "...",
"icon": "data/my-icon.png",
"author": "...",
"license": "MPL 2.0",
"version": "0.1"
}
main.js:
var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var tabs = require("sdk/tabs");
var button = ToggleButton({
id: "extension-button",
label: "extension",
icon: {
"48": "./my-icon.png"
},
onChange: handleChange
});
function handleChange(state) {
if (state.checked) {
var panel = panels.Panel({
contentURL: self.data.url("http://my_url"),
onHide: handleHide,
width: 600,
height: 600
});
panel.show({
position: button
});
}
}
function handleHide() {
button.state('window', {checked: false});
}
Без кода этот вопрос может быть не по теме: вопросы, требующие помощи по отладке («** почему этот код не работает так, как я хочу? **)) должны включать: • желаемое поведение, • конкретную проблему или ошибки * и * • кратчайший код, необходимый для его воспроизведения ** в самом вопросе **. Вопросы без ** ясного заявления о проблеме ** не полезны для других читателей. См.: [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve), [о каких темах я могу спросить здесь?] (Http://stackoverflow.com/help/ по-теме) и [спросить]. – Makyen
Согласитесь с @Makyen, предоставьте код, чтобы мы могли вам помочь. – dgil
Пожалуйста, добавьте код, как @Makyen сказал – matagus