Bonjour,
j'ai le nom d'une fonction javascript sous forme de String et je souhaite appeler la fonction grâce à son nom.
QQn a une idée ?
Merci d'avance :D
Version imprimable
Bonjour,
j'ai le nom d'une fonction javascript sous forme de String et je souhaite appeler la fonction grâce à son nom.
QQn a une idée ?
Merci d'avance :D
Tout betement:
Code:setTimeout(tonstring, 0)
ou tout simplement : tonstring();
qui est la facon d'appeler une fonction.
tchao 8-)
effectivement c'est simple :)
je n'y avais pas pensé.
merci
en fait ça ne marche pas :(
Je ne passe jamais dans ma fonction.Code:
1
2
3
4
5
6 eval("toto"); function toto() { alert("toto"); }
Je dois mal faire un truc.
merci d'avance.
c'est logique que tu ne passe pas dans ta fonction puisque eval sert a evaluer une chaine de caractere et nom pas le nom d'une fonction.
si tu veut passer dans ta fonction
function toto() {
alert("toto"); // affiche affiche un message d'alerte
}
toto(); //pour lancer la fonction
@+
en fait j'ai le nom de ma fonction sous forme de String
je récupère ce nom via du AJAX et je souhaite appeler la fonction correspondant au nom. Est ce possible ?Code:
1
2 var nomFonction = "toto";
merci d'avance
As tu essayé le code que j'ai donné!
sinon ...
Code:
1
2
3 function hello(){alert('hello world')} var mafonction="hello()" eval(mafonction) // ou setTimeout(mafonction)
je ne pense pas que ce soit possible.
De plus comme tu récupére sa avec ajax , ta un truc du genre :
reponse="toto".Donc tu ne pourra pas appeler ta fonction avec ca.A moins que je me trompe mais en tous cas je ne vois pas comment faire.
Une solution alternative : tu recoi ta reponse avec ajax puis tu fait un switch sur ta reponse. ex :
switch (reponse)
{
case "toto":toto();break;
case "titi": titi();break;
...
}
voila @ +
ou encore :
Code:
1
2
3
4 function hello(){alert('hello world')} var mafonction="hello" window[mafonction]()
oui j'ai essayé mais je ne passe pas dans ma fonction :(
Code:
1
2
3
4
5
6
7 var toto = "toto"; setTimeout("toto", 0); function toto() { alert("toto"); }
Code:setTimeout("toto()", 0);
le eval marche mais avec les () .autant pour moi
tu peut concatener ta chaine "toto" avec "()" et apres eval
@+
la methode
me parait plus appropriée ...Code:window[fonction]()
+1Citation:
Envoyé par SpaceFrog
deux bouts de code qui marchent :
Code:
1
2
3
4
5
6
7 var test = "toto" + "()"; setTimeout("eval(test)", 0); function toto() { alert("toto"); }
Par contre, je ne comprends ça : window[fonction]()Code:
1
2
3
4
5
6 setTimeout("toto()", 0); function toto() { alert("toto"); }
Tu peux me donner un exemple STP.
Merci bcp
l'exemple à déja été donné deux ou trois postes plus haut ...
effectivement j'ai loupé pleins de post :)
Merci beaucoup !