Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# onclick n'est pas activé dans les menus sous MacOSX

Envoyé par : aurelien

Date : 03/01/2006 18:22

Bonjour,

Je rajoute un menu dynamique peuplé "à la main" dans la main-menubar de Firefox, tout marche bien sous Windows et Linux mais sous MacOSX la ligne de code associée à l'évènement 'onclick' de mes menuitems n'est pas exécutée.

Pourtant, je peux voir le code dans le DOMInspector, et je le répète cela marche parfaitement sous Linux et Windows.

Avez vous des éléments de réponse ?

Le code :

 createMenuBarItem : function (aParent, aIndex, title, url, type)
 {
   var menuitem = document.createElement( "menuitem" );
   menuitem.setAttribute( "label", title );
   menuitem.setAttribute( "index", aIndex );
   menuitem.setAttribute( "value", url );
   menuitem.setAttribute( "CLtype", type );
   menuitem.setAttribute( "tooltiptext", url );
   //menuitem.setAttribute( "style", "text-indent: 10mm;");
   menuitem.setAttribute( "onclick", "dump(url + ' onclick\n'); CLshortcutsMenu.menuShortcutsClick(event);");
   aParent.appendChild( menuitem );
 },  

Merci de votre aide et bonne année,

Aurélien

Ce message est en partie lié à http://xulplanet.com/forum/viewtopic.php(..), si vous trouvez ca trop redondant vous pouvez supprimer cette discussion.

# Re: onclick n'est pas activé dans les menus sous MacOSX

Envoyé par : chBok

Date : 03/01/2006 23:38

et en remplaçant le onclick par un oncommand, le problème subsiste-t-il ?

# Re: onclick n'est pas activé dans les menus sous MacOSX

Envoyé par : laurentj

Date : 04/01/2006 13:09

oui, il faut utiliser oncommand au lieu de onclick. Un item de menu, ça ne s'active pas qu'à la souris ;-)

et puis, il est preferable, quand on fabrique "à la main", de passer plutôt par un addEventHandler, c'est plus propre et plus puissant. (voir en bas de cette page du tuto)

# Re: onclick n'est pas activé dans les menus sous MacOSX

Envoyé par : aurelien

Date : 04/01/2006 13:30

Oui en fait j'utilise bien un oncommand au niveau du menu :

 <menubar id="main-menubar">
   <menu id="shortcutsMainMenu" label="&copylinker.label;" accesskey="S"
         onpopupshowing="CLshortcutsMenu.updateMenuBar(event);"
         oncommand="CLcommon.loadURL(event.target.value, false); alert(event +" " + event.target + "  " + event.target.value);">
     <menupopup id="shorcutsMainMenuPopUp" context="eraseMenu" >
     </menupopup>
   </menu>
 </menubar> 

Mais à ce niveau là le event.target.value est à 'undefined' c'est le sujet de mon post sur le forum de xulplanet.

Et comme mon menu affiche des liens j'utilise onclick pour savoir si on a fait un click du milieu. Comme oncommand ne me permet pas de savoir quel élément à été sélectionné je me suis dis que je pouvais utiliser onclick.

EDIT : Je viens d'utiliser addEventListener et cela ne change rien.

Ce que je ne comprend pas c'est la différence entre MacOSX et les autres plateformes je suis bien conscient qu'une fenetre invisible est utilisée pour générer la barre de menu mais je ne vois pas ce que cela change. Je ne sais pas si c'est lié mais j'ai remarqué que sous mac le clic du milieu sur un lien n'ouvre pas d'onglet.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.