使用Firefox Add-on SDK时,上下文菜单项中的图标未显示。

3
这是文件的结构:
├── 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被执行,但是图片没有显示。我该如何解决这个问题?


你不需要(或者不应该)将 icon.png 放在 lib/ 目录下。 - Chris Morgan
对我来说,在“data”文件夹中使用image:data.url("icon.png"),可以在addon-sdk-1.14中使用一个16x16的“icon.png”。 - dux2
3个回答

0

试试这个,它对我有用:

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")
});

0

我可能错了,但从Chris答案的评论中看来,问题似乎不在图标上,而是在您的上传脚本上。 可能是运行过程从未到达图像属性以添加它。

如果您完全删除图像属性,是否会出现相同的错误?


0

请确保您正在使用足够版本的Add-on SDK;'image'属性仅在版本1.1中添加。如果您正在使用1.0,则需要更新。否则,它应该可以正常工作。


感谢您的帮助。我正在使用从(https://addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/addon-development/installation.html)下载的1.3版本,但它无法工作。 - ly gu
那么 icon.png 是否有效,大小是否正确等等?通过 cfx run 运行扩展时,控制台中是否出现任何有趣的信息? - Chris Morgan
很抱歉回复晚了。我尝试了16px、19px和32px,但都没有起作用。“无法读取chrome清单文件'/tmp/tmpWqbFWK.mozrunner/extensions/jid1-X2MazapyCOmMuA@jetpack/chrome.manifest'。”在控制台中显示。 - ly gu
好像是出现了错误...也许是package.json无效?我建议您尝试Add-on SDK邮件列表。 - Chris Morgan
非常抱歉回复晚了,我尝试了很多方法但是无法解决这个问题,我会在未来的某一天解决它。谢谢。 - ly gu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接