我正在研究一個Firefox擴展,它根據從服務器獲取的數據創建一個書籤菜單。我想爲每個菜單項添加圖標,但似乎無法讓它們顯示。我正在創建每個菜單項使用: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。
您是否從網絡上的外部服務器即時獲取圖像?如果是,我不確定是否出於安全原因允許這樣做。也許嘗試將它們本地存儲爲base64編碼的字符串(這只是一個瘋狂的猜測)。 –
我只是在我的擴展的內容目錄中放置了一個16x16 icon.png,然後嘗試了下面的image屬性:「icon.png」,「content/icon.png」,「bookmarks/content/icon.png」,「chrome ://bookmarks/content/icon.png」。我也嘗試通過menuItem.image而不是使用setAttribute()來設置它。這似乎沒有任何工作。我放入了一些警報來驗證menu屬性中是否設置了圖像屬性,並且它有一個「menuitem-iconic」類。 – erturne
坦率地說,我在這裏看不到你的代碼有什麼問題。設置'menuitem-iconic'類和'image'屬性絕對適合我。 –