2010-09-11 5 views
7

J'essaie de créer un addon Firefox & Je veux ajouter une image/icône dans le menu du contenu du clic droit, par exemple, firebug avait une icône dans le menu contextuel du clic droit,firefox addon: ajouter une icône au menu contextuel

enter image description here

Je veux faire quelque chose de semblable, mon addon se compose également d'éléments de menu

la structure de mon addon dans le menu contextuel:

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

Comment puis-je le faire?

Répondre

6

Vous devez définir le image attribute, donner l'élément class menu-iconic et stocker l'image pour que vous puissiez y accéder.

XUL:

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

JavaScript:

Vous pouvez également définir ou modifier l'image dynamique (obtenir une référence à l'élément premier):

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

Merci, il a travaillé :), mal à cela pour les 2 dernières heures, enfin 'class = « menu iconique »' a rendu mon travail se fait. mais une question, comment est-il devenu emblématique en ajoutant un attribut 'class'? –

+0

Eh bien je suppose que Firefox utilise des CSS pour montrer l'image et peut-être aussi aligner le texte correctement. À la fin, l'interface XUL est également simplement stylisée avec CSS. –

0

Vous pouvez ajouter un contexte menu à l'aide de la nouvelle image de SDK Mozilla Add-ons en utilisant la propriété d'image

under Options: En option

il suffit d'ajouter l'attribut d'image comme celui-ci

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

Image: icône de l'élément, une URL de chaîne. L'URL peut être distante, une référence à une image dans le répertoire de données du module ou une URI de données.

Mozilla context menu help page for Addon SDK

+0

Cette question porte explicitement la balise XUL et n'a pas la balise firefox-addon-sdk. Bien qu'il ne soit pas * faux * de fournir une réponse ici pour le SDK Add-On, le libellé de votre premier paragraphe implique qu'il y a quelque chose de mal à utiliser XUL pour le moment. Ce n'est pas le cas. Il n'a pas encore été déprécié. – Makyen

+0

La seule déclaration qui a été faite est que la dépréciation peut se produire dans le futur. "[Nous n'avons pas de calendrier spécifique pour la dépréciation, mais très probablement il aura lieu dans les 12 à 18 prochains mois.] (Https://blog.mozilla.org/addons/2015/08/21/the- future-of-development-firefox-add-ons /) "Maintenant être 2015-08-21 dans cette déclaration. – Makyen

+0

Je ne voudrais pas passer du temps à développer quelque chose qui n'est pas vraiment documenté et qui sera déprécié dans ~ 1 ans, mais chacun à son propre – ejectamenta

Questions connexes