XUL: FF-Kontextmenü mit eigenen Einträgen anpassen
Geizhals » Forum » Programmierung » XUL: FF-Kontextmenü mit eigenen Einträgen anpassen (7 Beiträge, 240 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
XUL: FF-Kontextmenü mit eigenen Einträgen anpassen
09.01.2011, 22:04:30
Hallo an alle Coder,

ich bastle hier grad an einer Sache herum und blicke nicht so ganz durch...

Folgendes Szenario:
- das Standard-Kontextmenü von Firefox enthält diverse Einträge und Untermenüs
- ich möchte in diesem Standardmenü abhängig vom URL eigene Untermenüs einblenden
- wenn keine der abgefragten URLs aufgerufen wurde soll keines meiner Menüs angezeigt werden

Bis jetzt hab ich es zwar geschafft, die Untermenüs direkt einzublenden, aber leider immer unabhängig von der eigentlichen Adresse; macht das Kontextmenü aber nur unübersichtlich und manchmal so lang, dass ich oben und unten Scrollpfeile hab :(

Hab mir zwar die Infos unter https://developer.mozilla.org/en/XUL/PopupGuide/Extensions  bzw.
https://developer.mozilla.org/en/XUL/PopupGuide/ContextMenus
durchgelesen, bin aber leider nicht wirklich schlauer geworden :-~(

Hier ein Auszug aus dem, was ich im JS-File (functions.js) bzw. dem XUL hab (der Code an sich funktioniert einwandfrei):

function init()
{
  var contextMenu = document.getElementById("contentAreaContextMenu");
  if (contextMenu)
    contextMenu.addEventListener("popupshowing", checkURL, false);
}

function checkURL(event)
{
  var address = self._content.location.href;
  var showMnu1 = document.getElementById("mnuURL1");
  var showMnu2 = document.getElementById("mnuURL2");
  showMnu1.hidden = (address.match([irgendeinurl])==null);
  showMnu2.hidden = (address.match([irgendeinandererurl])==null);
}


Dann die Aufrufe im XUL mit:


[script src="functions.js"/]*

<popup id="contentAreaContextMenu">
	<menu label="Menü 1" id="mnuURL1" onpopupshowing="init();">
	<menupopup>
		<menuitem label="Funktion1" oncommand="func1();" disabled="false"/>
		<menuitem label="Funktion2" oncommand="func2();" disabled="false" />
	</menupopup>
	</menu>
	<menu label="Menü 2" id="mnuURL2" onpopupshowing="init();">
	<menupopup>
		<menuitem label="Funktion 3" oncommand="func3();" disabled="false"/>
		<menuitem label="Funktion 4" oncommand="func4();" disabled="false" />
	</menupopup>
	</menu>
</popup>

* Eckige Klammern, weil die Spitzen der GHF-Parser schluckt und die Zeile löscht


Wenn ich das onpopupshowing() direkt in den popup-Tag schreibe ist das Kontexmenü im Endeffekt noch länger - bringt also auch nicht den gewünschten Effekt.

Momentan läuft es so, dass zwar die Menüs ausgeblendet werden, sobald ich drüberfahre, sich der FF aber entweder a) einfach aufhängt (Kontextmenü bleibt offen, FF reagiert aber auf nix mehr) oder b) gleich mit einem APPCRASH-Fenster abschmiert, nachdem die Menüs ausgeblendet wurden. Wirklich nachvollziehbar, was wann passiert, ist es nicht.

Hat jemand einen Rat oder eine Idee?

Danke,

greetz

glockman B-)

- There's no replacement for displacement. Not even Diesel. -
vs.

Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung