2011-09-19 92 views
-1

我想在上下文菜單中添加一個圖標,但不知道它爲什麼沒有顯示。Firefox上下文菜單項圖標

下面是完整的代碼:

chrome.menifest

content xulschoolhello    jar:chrome/xulschoolhello.jar!/content/ 
skin  xulschoolhello classic/1.0 jar:chrome/xulschoolhello.jar!/skin/ 
locale xulschoolhello en-US  jar:chrome/xulschoolhello.jar!/locale/en-US/ 

overlay chrome://browser/content/browser.xul chrome://xulschoolhello/content/browserOverlay.xul 

style chrome://browser/content/browser.xul chrome://xulschoolhello/skin/browserOverlay.css 

browserOverlay.xul

<?xml version="1.0"?> 

<!DOCTYPE overlay SYSTEM 
    "chrome://xulschoolhello/locale/browserOverlay.dtd"> 

<overlay id="xulschoolhello-browser-overlay" 
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 

    . 
    . 
    . 

    <!-- Context menu additions --> 
    <popup id="contentAreaContextMenu"> 
     <menuseparator id="ss-context-menu-separator"/> 
     <menuitem id="ss-context-menu-item" class="menuitem-iconic" 
       label="click me" 
       oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);"/> 
    </popup> 
</overlay> 

browserOverlay.css

#ss-context-menu-item { 
    list-style-image: url("ss_16.png"); 
} 

關於問題的任何想法?

+0

首先要測試的是:圖像是否加載?嘗試在瀏覽器中打開'chrome:// xulschoolhello/skin/ss_16.png'。 –

+1

@Wladimir Palant:我發佈了整個代碼,因爲可能是導致問題的其他一些東西。無論如何減少了代碼。 chrome://xulschoolhello/skin/ss_16.png在brwoser中打開。 – MA1

+0

該文件不應該被稱爲chrome.manifest? (不是清單) –

回答

0

從我用我自己的擴展名進行的測試中,我認爲可能除了chrome.manifest中的那個之外,您還必須添加對覆蓋中樣式表的引用。要做到這一點,你有DOCTYPE聲明之前添加以下行:

<?xml-stylesheet href="chrome://xulschoolhello/skin/browserOverlay.css" type="text/css"?> 

如果你不把文件名,只留下chrome://xulschoolhello/skin/,它也應該工作,根據tutorial

+0

已經勾選,沒有效果。 css和圖像文件在同一目錄下,因此不需要使用完整路徑。 – MA1

+0

好的。你是否在overlay中引用browserOverlay.css?這不在你的片段中。 – Woundorf

+0

你錯了 - CSS文件中的URL總是相對於CSS文件位置。所以使用完整的URL是不必要的。 'browserOverlay.css'在'chrome.manifest'中被引用(這是一個樣式覆蓋)。 –