私は、サーバーからフェッチされたデータからブックマークメニューを作成するFirefox拡張機能を開発中です。私は各menuitemにアイコンを追加したいと思いますが、それらを表示させることはできません。Firefox拡張機能Menuitem画像が表示されない
Bookmarks.createMenuItem = function(item) {
var menuItem = document.createElementNS(Bookmarks.XUL_NS, "menuitem");
menuItem.setAttribute("label", item.url_title);
menuItem.setAttribute("oncommand", "Bookmarks.openUrl('" + item.url + "');");
menuItem.setAttribute("class", "bookmark-menu-item");
if (item.favicon) {
menuItem.setAttribute("class", menuItem.getAttribute("class") +
" menuitem-iconic");
menuItem.setAttribute("image", item.favicon);
}
return menuItem;
};
menuitemはイメージを表示しない以外は問題ありません。私は各画像(以下のコードのitem.faviconから)にアクセスしているURLにアクセス可能であることを確認しました。
任意のアイデアは、ここで間違って何ですか?私はFirefox 6.0.2を使用しています。 HttpFox - -
Webから外部サーバーから画像をオンザフライでフェッチしていますか?はいの場合、これがセキュリティ上の理由で許可されているかどうかはわかりません。たぶんbase64でエンコードされた文字列としてローカルに格納してみてください(これは単なる推測です)。 –
私の拡張機能のコンテンツディレクトリに16x16のicon.pngを入れてから、「icon.png」、「content/icon.png」、「bookmarks/content/icon.png」、「chrome ://bookmarks/content/icon.png "私はsetAttribute()を使う代わりにmenuItem.imageで設定しようとしました。それのどれもうまくいかなかった。画像属性がmenuitemに設定されていることと、「menuitem-iconic」クラスがあることを確認するためにいくつかの警告を出しました。 – erturne
率直に言えば、私はここにあなたのコードに間違ったことはありません。 'menuitem-iconic'クラスと' image'属性を設定することは間違いなく私の仕事です。 –