Значок не отображается в элементе контекстного меню с Firefox Add-on SDK

Это структура файлов:

├── data
│   ├── icon.png
│   ├── upload.js
│   └── upload.js~
├── doc
│   └── main.md
├── icon.png
├── lib
│   ├── icon.png
│   ├── main.js
│   └── main.js~
├── package.json
├── package.json.backup
├── README.md
├── share2.xpi
└── test
    └── test-main.js

Это код в main.js:

const contextMenu = require("context-menu");
const data = require("self").data;
exports.main = function(options,callbacks){
    var cm = require("context-menu").Item({
        label:"share it",
        contentScriptFile:data.url("upload.js"),
    image:data.url("icon.png")
    });
}

«поделиться» отображается в контекстном меню, а файл contentScriptFile выполняется, но изображение не отображается. Как я могу решить эту проблему?


person ly gu    schedule 04.02.2012    source источник
comment
Вам не нужно (или не нужно) icon.png в lib/.   -  person Chris Morgan    schedule 04.02.2012
comment
Для меня сработало использование image:data.url(icon.png) для 16x16 icon.png в папке «данные», используя addon-sdk-1.14   -  person dux2    schedule 10.11.2013


Ответы (3)


Убедитесь, что вы используете достаточную версию Add-on SDK; свойство «изображение» было добавлено только в версии 1.1. Если вы используете 1.0, вам необходимо обновиться. В противном случае он должен работать.

person Chris Morgan    schedule 04.02.2012
comment
Спасибо за вашу помощь. Я использую версию 1.3, загруженную из (addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/ это не сработало - person ly gu; 04.02.2012
comment
Тогда является ли icon.png действительным, правильным размером и т. д.? Появляется ли в консоли что-нибудь интересное при запуске расширения через cfx run? - person Chris Morgan; 06.02.2012
comment
Извините, что отвечаю так поздно. Я пробовал 16px, 19px и 32px, но это не сработало. Не удалось прочитать файл манифеста Chrome '/tmp/tmpWqbFWK.mozrunner/extensions/jid1-X2MazapyCOmMuA@jetpack/chrome.manifest'.в консоли - person ly gu; 21.02.2012
comment
Звучит как ошибка где-то... возможно, package.json недействителен? Я предлагаю вам попробовать список рассылки Add-on SDK. - person Chris Morgan; 22.02.2012
comment
Извините, что отвечаю так поздно, я пробовал много способов, но не смог решить проблему, я решу ее когда-нибудь. Спасибо. - person ly gu; 13.03.2012

Я могу ошибаться, но из комментариев к ответу Криса кажется, что проблема не в значке, а в вашем сценарии загрузки. Возможно, процесс выполнения никогда не достигает свойства изображения, чтобы добавить его.

Вы получаете ту же ошибку, если полностью удаляете свойство изображения?

person Arth    schedule 11.04.2012

Попробуйте это, это сработало для меня:

var self = require("sdk/self");
require("sdk/context-menu").Item({
  label: "Buscar lugar geográfico...",
  contentScript: 'self.on("click", self.postMessage);',
  onMessage: function () {
    doSearch();
  },
  image:self.data.url("logo.png")
});
person Germán Carrillo    schedule 18.12.2015