OVH Cloud OVH Cloud

for...in

24 réponses
Avatar
loiseauthierry
Salut,

Je souhaiterais pouvoir lister en JS l'état des variables déclarées.

Je suppose qu'il me faut utiliser un for...in mais je ne sais plus
comment manipuler ça :-(((

Vous avez une piste pour moi ?

Thierry
--
4 "Il y a 10 sortes de personnes sur Terre : ceux qui connaissent
3 le système et savent compter et ceux qui ne savent pas compter"
2
1....'....12.....'....24.....'....36.....'....48.....'....60.....'....72

10 réponses

1 2 3
Avatar
loiseauthierry
Thierry Loiseau wrote:

Je souhaiterais pouvoir lister en JS l'état des variables déclarées.

Je suppose qu'il me faut utiliser un for...in mais je ne sais plus
comment manipuler ça :-(((

Vous avez une piste pour moi ?


Voilà ce que j'ai trouvé :

----8-<----

<html><head><title>for...in</title>
</head><body>
<script type="text/javascript">
<!--
var test="toto";
function show_props(obj, objName) {
var result = ""
for (var i in obj) {
result += objName + ".<b>" + i + "</b> = " + obj[i] + "<br>"
}
return result
}
objet="window";
document.write("<h1>Propri&eacute;t&eacute;s de l'objet
<i>"+objet+"</i></h1>")
document.write("<hr>");
document.write(show_props(window,"<b>"+objet+"</b>"));
document.write("<hr>");
document.write("test=""+test+""");
// -->
</script>
</body></html>

---->-8----

Thierry
--
4 "Il y a 10 sortes de personnes sur Terre : ceux qui connaissent
3 le système et savent compter et ceux qui ne savent pas compter"
2
1....'....12.....'....24.....'....36.....'....48.....'....60.....'....72

Avatar
O.L.
Thierry Loiseau a exprimé avec précision :
Salut,

Je souhaiterais pouvoir lister en JS l'état des variables déclarées.

Je suppose qu'il me faut utiliser un for...in mais je ne sais plus
comment manipuler ça :-(((

Vous avez une piste pour moi ?

Thierry


Tu veux pouvoir connaitre la valeur de toutes les variables créées dans
ta page web ?
Dur dur, AMHA ... voire impossible, non ? Sauf si tu connais un bout de
leur nom (genre, var1, var2, varx).


--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

Avatar
loiseauthierry
O.L. wrote:

Thierry Loiseau a exprimé avec précision :
Salut,

Je souhaiterais pouvoir lister en JS l'état des variables déclarées.

Je suppose qu'il me faut utiliser un for...in mais je ne sais plus
comment manipuler ça :-(((

Vous avez une piste pour moi ?

Thierry


Tu veux pouvoir connaitre la valeur de toutes les variables créées dans
ta page web ?
Dur dur, AMHA ... voire impossible, non ? Sauf si tu connais un bout de
leur nom (genre, var1, var2, varx).


<html><head><title>for...in</title>
</head><body>
<script type="text/javascript">
<!--
var test="toto";
var bibi="bobo";
function show_props(obj, objName) {
var result = ""
for (var i in obj) {
result += objName + ".<b>" + i + "</b> = " + obj[i] + "<br>"
}
return result
}
objet="window";
document.write("<h1>Propri&eacute;t&eacute;s de l'objet
<i>"+objet+"</i></h1>")
document.write("<hr>");
document.write(show_props(window,"<b>"+objet+"</b>"));
document.write("<hr>");
document.write("test=""+test+""");
document.write("bibi=""+bibi+""");
// -->
</script>
</body></html>

Je trouve assez facilement depuis Firefox, mais pas avec IE, le contenu
des variables 'test' et 'bibi'

Thierry
--
4 "Il y a 10 sortes de personnes sur Terre : ceux qui connaissent
3 le système et savent compter et ceux qui ne savent pas compter"
2
1....'....12.....'....24.....'....36.....'....48.....'....60.....'....72


Avatar
ASM

Je trouve assez facilement depuis Firefox, mais pas avec IE, le contenu
des variables 'test' et 'bibi'


FF ou IE, avec le code proposé j'ai
1) généralités : pas mal de choses communes
2) bibi test clairement puisque :


document.write("test=""+test+""");
document.write("bibi=""+bibi+""");


quelle est la question ?
(puisque je n'ai pas vu apparaître miraculeusement les variables)

donc si tu les connais d'avance :

var liste='bibi,test'
liste = liste.split(',');
var txt = '<hr />les variables sont : <br />';
for(var i=0;i<liste.length;i++)
txt += liste[i]+' = '+eval(liste[i])+'<br />'
document.write(txt);

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
loiseauthierry
ASM wrote:


Je trouve assez facilement depuis Firefox, mais pas avec IE, le contenu
des variables 'test' et 'bibi'


FF ou IE, avec le code proposé j'ai
1) généralités : pas mal de choses communes
2) bibi test clairement puisque :


document.write("test=""+test+""");
document.write("bibi=""+bibi+""");


quelle est la question ?
(puisque je n'ai pas vu apparaître miraculeusement les variables)

donc si tu les connais d'avance :


En fait, function show_props(obj, objName)
ne retourne pas la valeur des deux variables, depuis IE

Thierry
--
4 "Il y a 10 sortes de personnes sur Terre : ceux qui connaissent
3 le système et savent compter et ceux qui ne savent pas compter"
2
1....'....12.....'....24.....'....36.....'....48.....'....60.....'....72


Avatar
ASM

En fait, function show_props(obj, objName)
ne retourne pas la valeur des deux variables, depuis IE


Scrogneugneu je les avais zappées


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Thibault
Salut,

Je souhaiterais pouvoir lister en JS l'état des variables déclarées.

Je suppose qu'il me faut utiliser un for...in mais je ne sais plus
comment manipuler ça :-(((

Vous avez une piste pour moi ?

Thierry


Salut,
Quand tu déclares des variables, elles sont déclarées dans la window si
tu as utilisé le statement
"
var toto = 4;
",
et globales si tu as fait simplement
"
toto = 4;
"
donc pour afficher une variable faire alert(toto) ou alert(window.toto)
est équivalent si tu as utilisé "var".
Donc avec ce script, tu affiches toutes les variables déclarées ... et
meme plus.

<script>
var bleah='toto';
var toto='bibi';
function print_all() {
for (var i in window) {
document.write(i + " = " + window[i] + "<br>n");
}
document.close();
}
print_all();
</script>

Avatar
loiseauthierry
Thibault wrote:

donc pour afficher une variable faire alert(toto) ou alert(window.toto)
est équivalent si tu as utilisé "var".


Il n'est pas nécessaire d'utilisé "var" pour que la variable puisse être
appelable avec window !

titi="tutu";
var toto="tutu";

alert(window.titi) donne la même chose que alert(window.toto);

Donc avec ce script, tu affiches toutes les variables déclarées ... et
meme plus.


Le "même plus" ne me satisfait pas justement. j'aurais aimé trouver le
moyen de ne lister *que* l'état des variables :-/

J'ai pondu l'astuce suivante, mais elle n'est pas bien souple quant à la
gestion de ces variables. Mais c'est peut-être une piste, je sais pas...

<html>
<head>
<title>for...in (var)</title>
</head>
<body>
<script>

var v=new Array();
v['titi']="";
v['bleah']='toto';
v['toto']='bibi';
v['tutu']9;
function print_all() {
for (var i in window.v) {
v['titi']=(typeof(window.v[i])=="string")?" ' ":"";
document.write(i + " = " + v['titi'] + window.v[i] + v['titi'] +
"<br>n");
}
document.close();
}
print_all();
document.write(v['tutu']*2);
</script>
</body>
</html>

Merci Thibault pour tes remarques,

Thierry et bonne fin d'année à vous

Avatar
Thibault
Thibault wrote:


donc pour afficher une variable faire alert(toto) ou alert(window.toto)
est équivalent si tu as utilisé "var".



Il n'est pas nécessaire d'utilisé "var" pour que la variable puisse être
appelable avec window !

titi="tutu";
var toto="tutu";

alert(window.titi) donne la même chose que alert(window.toto);


Oui, je me suis peut etre mal exprimé.
Mais l'utilisation de "var" limite le scope de la variable dans window.
Alors que la déclaration "sale" de :
titi = "tutu";
permet l'accession de ces variables dans des iframes, frames etc ...
Voila.


Le "même plus" ne me satisfait pas justement. j'aurais aimé trouver le
moyen de ne lister *que* l'état des variables :-/



Je n'ai pas la réponse pour t'aider sur ce point :-)


Avatar
loiseauthierry
Thibault wrote:

Il n'est pas nécessaire d'utilisé "var" pour que la variable puisse être
appelable avec window !

titi="tutu";
var toto="tutu";

alert(window.titi) donne la même chose que alert(window.toto);


Oui, je me suis peut etre mal exprimé.
Mais l'utilisation de "var" limite le scope de la variable dans window.
Alors que la déclaration "sale" de :
titi = "tutu";
permet l'accession de ces variables dans des iframes, frames etc ...
Voila.


Imagine une variable déclarée (sans 'var') :

parcours="z";

Un alert(window.parent.parcours) me donnera 'z' depuis un de ses iFrame

Le "même plus" ne me satisfait pas justement. j'aurais aimé trouver le
moyen de ne lister *que* l'état des variables :-/



Je n'ai pas la réponse pour t'aider sur ce point :-)


Mince, tant pis :'(

Thierry


1 2 3