2012-02-04 34 views
3

這是文件的結構:圖標不顯示在上下文菜單項與Firefox插件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被執行,但圖像不顯示。我怎麼解決這個問題?

+0

你不(或不應該)需要用'icon.png'在'LIB /'。 – 2012-02-04 06:56:09

+0

對於我使用image:data.url(「icon.png」)爲'data'文件夾中的16x16「icon.png」工作,使用addon-sdk-1.14 – dux2 2013-11-09 22:04:12

回答

0

確保您使用的是足夠的Add-on SDK版本; '圖片'屬性僅在版本1.1中添加。如果您使用的是1.0,則需要更新。否則,它應該工作。

+0

感謝您的幫助。我使用的版本是1.3從https://addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/addon-development/installation.html)下載,但它無法工作 – 2012-02-04 07:35:04

+0

然後是'圖標。 png有效,正確的大小等等?通過'cfx run'運行擴展程序時,控制檯中是否出現了一些有趣的內容? – 2012-02-06 03:56:04

+0

對不起,這麼晚回覆。我嘗試了16px,19px和32px,但沒有成功。「無法讀取chrome清單文件」/tmp/tmpWqbFWK.mozrunner/extensions/[email protected]/chrome.manifest'."in控制檯 – 2012-02-21 15:26:45

0

我可能是錯的,但從克里斯的答案的意見,它似乎是問題不是與圖標,而是與您的上傳腳本。 這可能是運行過程永遠不會到達圖像屬性添加它。

如果您完全刪除圖像屬性,是否會得到相同的錯誤?

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