Envoyé par : Utilisateur anonyme
Date : 27/12/2005 16:53
Bonjour,
Je voudrai savoir comment faire pour parcourir les éléments Xul d'une fenêtre afin de pouvoir faire des actions en chaînes ou en "masses" sur un ensemble de composants.
Merci de votre aide.
Envoyé par : Paul Rouget
Date : 28/12/2005 02:54
Regarde du coté du DOM: http://xulfr.org/xulplanet/xultu/dom.htm(..)
Envoyé par : Utilisateur anonyme
Date : 28/12/2005 10:27
Et oui, c'était la sous mes yeux :(
Encore merci :)
Envoyé par : Utilisateur anonyme
Date : 02/01/2006 18:16
Bonjour,
Moi j'ai toujours un soucis.
Je part du node du document.documentElement, et je n'arrive à parcourir que 4 nodes (pour mon fichier xul, soit : un script, un toolbox, un tabbox et un vbox. Pas moyen de descendre d'un niveau.
Merci de votre aide
Envoyé par : hhf
Date : 03/01/2006 01:25
quelles sont les methodes que tu utilises...? sur un node tu parcours via un truc du style :
function maFunctionRecursive(node) { for(var i=0; node.childNodes.length; i++) { actionSurNode(node.childNodes[i]); maFunctionRecursive(node.childNodes[i]); } }
Evidement si tu utilise une methode recursive, utilise bien des variable locale, sinon catastrophe... ici un for(i=0;... serait pas bon du tout, sinon, je vois pas ton probleme sans que tu en dises plus
Envoyé par : Utilisateur anonyme
Date : 03/01/2006 09:44
Bonjour,
Merci de ton coup de main :)
En voici plus.
J'ai une fenêtre xul dans laquelle j'ai des groupbox avec, bien sur, des niveaux de boites dedans... contenants des textbox ou labels etc...
Je voudrai savoir comment parcourir ces différentes sous-boites et les composants dedans afin de tester chacun de ces membres....
est ce suffisant ?
Envoyé par : laurentj
Date : 03/01/2006 12:45
Balouche : il faut que tu apprennes ce qu'est le DOM. Cherche sur internet, tu as plein de tutoriaux.
Envoyé par : hhf
Date : 03/01/2006 15:58
si j'ai bien compris tu veux faire un traitement different en fonction tdu type noeux, dans ce cas utilise tjs le parcours de noeux via childNodesx, mais pour le traitement teste le type de noeux avec un
currentNode.nodeName=="maBalise"
par exemple :
currentNode=parent.childNodes[0]; if(currentNode.nodeName=="button") actionOnButon(currentNode);
Si ca repond pas à ta question dis en plus... Met un peu de code que diable...
Envoyé par : Utilisateur anonyme
Date : 05/01/2006 09:45
Bonjour,
Voila un peu plus d'infos. J'ai un ensemble de fonctions me permettant de "tracer" (via le println() ).
Je bute toujours sur le problème que ma fonction détecte bien les 4 objets de premiers niveau (si j'ose dire) : script / script / script / commandset sachant qu'il manque un toolbox et un vbox ensuite...
Ma fonction :
function ParcoursXul(node) { for(var i=0; node.childNodes.length; i++) { var obj = node.childNodes[i]; println('Composant : ' + obj.id + '/' + typeof(obj) +'/' + obj.tagName); ParcoursXul(node.childNodes[i]); } }
Mon code xul est :
<window id = "&app.id;" title = "&app.title;" width = "800" height = "600" xmlns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload = "onLoad();"> <script src="script1.js"/> <script src="script2.js"/> <script src="script3.js"/>
<commandset> <command id="quitter.ecran" oncommand="window.close();"/> </commandset>
et le résultat est :
Composant : /object/script Composant : /object/script Composant : /object/script Composant : /object/commandset Composant : quitter.ecran/object/command Event click sur menuitem(id:) [case menuitem]
Envoyé par : hhf
Date : 05/01/2006 20:30
Il y a un probleme, tu ne testes pas l'indice de ta boucle FOR corrige par :
for(var i=0; i<node.childNodes.length; i++)
si ca ne marche tjs pas, essaie de ne pas essayé de parcourir les enfants de scripts
function ParcoursXul(node, indent) { if(!indent) indent=0; for(var i=0; node.childNodes.length; i++) { if(obj.nodeName!="script") { var obj = node.childNodes[i]; intentation(indent); println("<"+obj.nodeName+">"); ParcoursXul(node.childNodes[i], indent+1); intentation(indent); println("</"+obj.nodeName+">"); } } } function intentation(nb) {while(nb--) print(" ");}
Envoyé par : thefab
Date : 12/01/2006 23:11
Il existe un moyen simple et puissant de parcourir un document HTML ou XML: avec les objets TreeWalker et NodeFilter on peut obtenir toutes les balises, seulement les attributs,... et en plus avec NodeFilter on peut créer un filtre plus précis pour ne garder que certains éléments.
Voir des exemples TreeWalker.
Fabrice
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.