Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Parcourir les éléments Xul d'une fenêtre (en Js)

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.

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

Envoyé par : Paul Rouget

Date : 28/12/2005 02:54

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

Envoyé par : Utilisateur anonyme

Date : 28/12/2005 10:27

Et oui, c'était la sous mes yeux :(

Encore merci :)

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

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

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

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

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

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 ?

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

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.

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

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...

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

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]

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

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

# Re: Parcourir les éléments Xul d'une fenêtre (en Js)

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.