bonjour,
J'ai découvert un bug sur IE que je n'arrive pas à transformer pour qu'il accete la syntax correct :
si on lance evaltest(), "test 1" s'affiche, mais après il y a une erreur, il ne connait pas la fonction test.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function evaltest(){ window.eval("var test = function(n){"+ "alert('test '+n);"+ "}"); test(1); runtest(); } function runtest(){ test(2); }
le code marche très bien si on enlève le "var " devant "test" seulement ce n'est pas conforme au w3c et la majorité des framework javascript mette un "var " devant leur variable.
cela marche aussi si on remplace
j'ai bien éssayé plusieurs méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var test = function(n){... //par function test(n){...
j'aboutie toujours au même résultat. Il ne veut pas sortir la fonction test du corp d'éxécution dans lequel la fonction eval est appelé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 var global = this; function evaltest(){ global.eval("var test = function(n){"+ "alert('test '+n);"+ "}"); test(1); runtest(); } function runtest(){ test(2); }
je n'es pas réussit par contre à faire un docnode.appendChild(node) où node contient un élément de type '<script type="text/javascript">...</script>' avec à l'intérieur le contenu de mon code javascript à évaluer. docnode étant n'importe quel élément de la page.
quelqu'un aurait une idée ????
PS: qu'elle que soit la méthode employé, j'ai toujours réussi à faire se que je voulais avec firefox ainsi qu'opera.
Partager