2010-09-11 9 views
7

Ich versuche ein Firefox-Addon zu erstellen & Ich möchte Bild/Symbol in der rechten Maustaste auf Content-Menü, zum Beispiel Firebug hatte ein Symbol im Kontextmenü,Firefox-Addon: Hinzufügen von Symbol zum Kontextmenü

enter image description here

was ich tun möchte etwas ähnliches, mein Addon besteht auch der Menüpunkte

Struktur meiner Add-on in Kontextmenü:

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

Wie kann ich es tun?

Antwort

6

Sie müssen die image attribute setzen, geben Sie das Element class menu-iconic und speichern Sie das Bild, so dass Sie darauf zugreifen können.

XUL:

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

JavaScript:

Sie können auch dynamisch gesetzt oder das Bild ändern (eine Referenz auf das Element erhalten zuerst):

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

Danke Es funktionierte :), für die letzten 2 Stunden das zu kämpfen, schließlich 'class = "menu-Ikone"' machte meinen Job erledigen. Aber eine Frage, wie wird es beim Hinzufügen eines Attributs "Klasse" ikonisch? –

+0

Nun, ich nehme an, dass Firefox einige CSS verwendet, um das Bild anzuzeigen und vielleicht auch den Text korrekt auszurichten. Am Ende ist die XUL-Schnittstelle auch nur mit CSS gestylt. –

0

Sie können einen Kontext hinzufügen Menü mit dem neuen Mozilla Add-ons SDK-Bild mit der Image-Eigenschaft

unter Optional Optionen:

fügen Sie einfach das Bild Attribut wie dieses

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

Bild: Das Symbol des Elements, eine String-URL. Die URL kann remote sein, ein Verweis auf ein Bild im Datenverzeichnis des Add-ons oder ein Daten-URI.

Mozilla context menu help page for Addon SDK

+0

Diese Frage enthält explizit das XUL-Tag und hat nicht das Firefox-Addon-SDK-Tag. Es ist zwar nicht falsch, hier eine Antwort auf das Add-On-SDK zu geben, aber der Wortlaut des ersten Absatzes deutet darauf hin, dass mit der Verwendung von XUL zu diesem Zeitpunkt etwas nicht in Ordnung ist. Das ist nicht der Fall. Es ist noch nicht veraltet. – Makyen

+0

Die einzige Aussage, die gemacht wurde, ist, dass die Abwertung irgendwann in der Zukunft passieren kann. "[Wir haben keinen bestimmten Zeitplan für die Ablehnung, aber höchstwahrscheinlich wird es innerhalb von 12 bis 18 Monaten stattfinden.] (Https://blog.mozilla.org/addons/2015/08/21/the- future-of-developing-firefox-add-ons /) "Jetzt in dieser Aussage vom 21.08.2015. – Makyen

+0

Ich würde nicht Zeit damit verbringen, etwas zu entwickeln, das nicht mehr wirklich dokumentiert ist und in ~ 1 Jahren abgeschrieben wird, aber jedes für sich – ejectamenta