2010-09-11 13 views
7

Sto cercando di creare un componente firefox & Voglio aggiungere immagine/icona nel menu di selezione del clic destro, ad esempio, firebug aveva un'icona nel menu di scelta rapida,addon firefox: aggiunta icona al menu di contesto

enter image description here

voglio fare qualcosa di simile, il mio addon si compone anche di voci di menu

struttura del mio addon nel menu contestuale:

[icon] [menu] 
      [menu item 1] 
      [menu item 2] 
      [menu item 3] 
      [menu item 4] 

Come posso farlo?

risposta

6

È necessario impostare image attribute, assegnare l'elemento class menu-iconic e memorizzare l'immagine in modo che sia possibile accedervi.

XUL:

<menu id="someid" label='your label' 
      class="menu-iconic" 
      image='chrome://addon/skin/image.png'> 
... 
</menu> 

JavaScript:

È inoltre possibile impostare o modificare l'immagine in modo dinamico (ottenere un riferimento al primo elemento):

menu.setAttribute('image', 'chrome://addon/skin/image.png'); 
+0

Grazie, ha funzionato :), lottando per questo negli ultimi 2 ore, finalmente class = "Menu-iconico" '' reso il mio lavoro ottenere fatto. ma una domanda, come è diventato iconico sull'aggiunta di un attributo 'class'? –

+0

Beh, immagino che Firefox usi alcuni CSS per mostrare l'immagine e magari anche allineare correttamente il testo. Alla fine, l'interfaccia XUL è anche solo in stile CSS. –

0

È possibile aggiungere un contesto menu utilizzando la nuova immagine SDK di Mozilla Add-ons utilizzando la proprietà image

sotto opzionale Opzioni:

basta aggiungere l'attributo di immagini come questa immagine

var menuItem = contextMenu.Menu({ 
    include: "*.stackoverflow.com", 
    label: "do something", 
    image: "data:image/png;base64,iVBORw0KGgoAA ...", 
    context: contextMenu.SelectorContext('div.someclass'), 
    contentScriptFile: data.url("cs.js"), 
    items: [ 
     contextMenu.Item({ label: "Item 1", data: "item1" }), 
     contextMenu.Item({ label: "Item 2", data: "item2" }), 
     contextMenu.Item({ label: "Item 3", data: "item3" }) 
     ] 
}); 

: icona dell'elemento, un URL di stringa. L'URL può essere remoto, un riferimento a un'immagine nella directory dei dati del componente aggiuntivo o un URI di dati.

Mozilla context menu help page for Addon SDK

+0

Questa domanda ha esplicitamente il tag XUL e non ha il tag firefox-addon-sdk. Anche se non è * sbagliato * fornire una risposta qui per l'SDK add-on, la formulazione del primo paragrafo implica che c'è qualcosa di sbagliato nell'usare XUL in questo momento. Questo non è il caso. Non è, tuttavia, stato deprecato. – Makyen

+0

L'unica affermazione che è stata fatta è che la deprecazione potrebbe verificarsi in futuro. "[Non abbiamo una tempistica specifica per la deprecazione, ma molto probabilmente avverrà tra 12 e 18 mesi a partire da ora.] (Https://blog.mozilla.org/addons/2015/08/21/the- future-of-development-firefox-add-ons /) "Ora è il 2015-08-21 in questa dichiarazione. – Makyen

+0

Non vorrei sprecare tempo a sviluppare qualcosa che non è più documentato e verrà ammortizzato in ~ 1 anni, ma ognuno per conto suo – ejectamenta

Problemi correlati