Bonjour Messieurs,
j'aurai besoin de votre aide sur du javascript. L'objectif du javascript est de parcourir tous les membres de niveau 1 de mon tree prompt dans une boucle et de selectionner le membre qui répond à un test. Au final c'est pour selectionner une valeur par défaut en dynamique et non en statique via les propirétés de l'invite.
Je pars d'un script que j'utilise et qui fonctionne très bien mais sans boucle.
Celui-ci selectionne le membre en fonction de sa position dans le tree prompt fixé en dur dans le code. Donc si jamais mon membre change de position c'est mort. D'où la le changement via une boucle.
Le script de départ est donc celui-ci
Donc pour valider que dans une boucle c'est possible j'ai décomposé unitairement chaque étape. Le code donne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <SCRIPT language=javascript> var node = window.treeTime.getRootNode().getChildren()[window.treeTime.getRootNode().getChildren().length-2]; node.setSelected(true); node.updateNodeSelection(); node.updateParent(); window.treeTime.setLastSelectedNode(node); </script>
et ça fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <SCRIPT language=javascript> /*ligne 165*/ /*chaîne à rechercher*/ var rChaîne = "1P]"; /*calcul la profondeur de l'axe (nbre de membre de nv1)*/ var opt= window.treeTime.getRootNode().getChildren().length; alert('longeur : '+opt); var node= window.treeTime.getRootNode().getChildren(); alert(node); /*mon compteur*/ var i=-3 /*le code du membre du tree prompt*/ var member = node[window.treeTime.getRootNode().getChildren().length+i].getValue(); alert('membre : '+member); /*nombre de caractère du code*/ var longChaine = member.length; alert('longeur membre : '+longChaine); /*récuparation des 3 derniers caractères pour test*/ var extract = member.substring(longChaine-3) alert('substring membre : '+extract); /*mon test*/ if (rChaîne == extract) alert('OK !!'); else alert('pas cool !'); </script>
Maintenant voici les étapes intégrées dans la boucle. Sauf que je me prends une erreur ligne 176 (cf pj).
J'ai tourné le script dans tous les sens avec différentes façon de procéder mais à chaque fois je me prends une erreur dans la tronche différente. J'en suis donc resté à cette version que je vous post avec cette erreur en espérant que vous pourrez m'aider.
Je suis presque certain que c'est pas grand chose mais comme je suis vraiment pas une brute en javascript, outre que le code doit pas être très élégant, je ne m'en sors pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <SCRIPT language=javascript> /*ligne 165*/ /*chaîne à rechercher*/ var rChaîne = "1P]"; /*calcul la profondeur de l'axe (nbre de membre de nv1)*/ var opt= window.treeTime.getRootNode().getChildren().length; alert('longeur : '+opt); for (i=1; i<=opt; i++) { /*la ligne 176 car 4 c'est juste en dessous*/ member=window.treeTime.getRootNode().getChildren()[window.treeTime.getRootNode().getChildren().length+i].getValue(); alert(member); longChaine = member.length; extract=member.substring(longChaine-3); if (extract == rChaîne) { window.treeTime.getRootNode().getChildren()[window.treeTime.getRootNode().getChildren().length+i] } } </script>
Toutes suggestions et aide sera donc la bienvenue
Partager