Envoyé par : aMan
Date : 15/03/2007 11:59
Bonjour tous le monde.
Je me pose une question au sujet du prototypage (surcharge) des méthodes sur un objet xul. Actuellement je travaille avec beaucoup de menulist que je peuple en javascript. Il existe donc des méthodes comme appendItem() qui permet d'ajouter des menuitem dans un menulist sans passé par de la manipulation DOM.
Cependant il n'existe pas de fonction appendMenuSeparator. J'aimerai pouvoir l'intégrer au méthodes des menulist. Comment m'y prendre ?
Je suppose qu'il faut utiliser
xxxxx.prototype = { appendMenuSeparator : function(){ // la fonction } }
Mais que dois je mettre à xxxxx en sachant que je veux appliqué cette méthode à toutes les menulist.
Merci d'avance (et bonne ap)
Envoyé par : hhf
Date : 15/03/2007 19:45
moi je te dirais plutot de faire un XBL tout simple. Allé je te mache le boulot :
le fichier xml :
<?xml version="1.0" encoding="UTF-8"?> <bindings xmlns="http://www.mozilla.org/xbl" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xbl="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <binding id="monmenulist" extends="chrome://global/content/bindings/menulist.xml#menulist"> <content> <children/> </content> <implementation> <constructor><![CDATA[ this.dispatchEvent(evt); ]]></constructor> <method name="appendMenuSeparator "> <body><![CDATA[ ... ]]></body> </method> </implementation> </binding> </bindings>
le fichier css
menulist { -moz-binding: url("chemin/mesxbl.xml#monmenulist"); }
dans le fichier xul
tu rajoutes le le fichier css
<?xml-stylesheet href="xbl/mesxbl.css" type="text/css"?>
Et voila. je pense que ca ca doit fonctionné, la seule chose dont je suis pas sur, c'est que FF te permette de remplacer totalement le xbl d'origine par un autre qui en herite. Au pire tu rajoute un attribut sur tes balises menulist et tu change le CSS par
menulist[type="attr="value"] { -moz-binding: url("chemin/mesxbl.xml#monmenulist"); }
Envoyé par : aMan
Date : 15/03/2007 20:33
Salut hhf, Merci beaucoup pour ta soluce. Il est vrai que je me suis jamais vraiment penché sur les xbl et je pense que je vais tester ça ce soir ou demain (je suis un peu sur les rotules). Cependant je reste quand même curieux pour savoir si c'est possible de passer par le prototypage.
Ps : superbe boulot pour sudoxul que j'avais testé à ses débuts. A bientôt et merci encore.
Envoyé par : hhf
Date : 16/03/2007 01:56
Pour le prototypage je dirais que non. Tu peux le faire sur des Object du Core javascript (Array, Date, Etc), mais pas pour des NodeElements. Pense que pour les elements tu n'instancies pas directement les Object, mais tu passes par une sorte de factory : document.createElement("eltName");
Oui, je sais je ramene tout à l'objet... on se refait pas.... :-D
Envoyé par : aMan
Date : 17/03/2007 09:27
Mais il faut, il faut ramener tout à l'objet ;) Merci encore une fois pour tes réponses.
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.