Bonsoir à tous !
Je ne comprends pas pourquoi le script suivant fonctionne bien sous Firefox, Chrome et Opera, mais pas sous Internet Explorer 7.
Peut être que quelqu'un saura m'éclairer ?
Le but de ce script est d'évaluer à la volée une chaine contenant des scripts Javascript ainsi que du HTML.
Il peut y avoir plusieurs scripts dans la chaine, mélangés avec du HTML.
Pour l'exemple, la chaine contient uniquement un script affichant "Test" dans une box alert.
Test.html:
Au chargement de Test.html, on devrait voir une box alert affichant "Test". Ce n'est pas le cas sous IE.
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 <body> <script type="text/javascript"> var element = document.createElement('div'); document.body.appendChild(element); element.innerHTML = "<script type=\"text/javascript\">alert('Test');<\/script>"; var scripts = element.getElementsByTagName("script"); for(var i=0; i<scripts.length; i++) { if (window.execScript) window.execScript(scripts[i].text.replace('<!--','')); else window.eval(scripts[i].text); } </script> </body>
Ne cherchez pas la logique de ce code, c'est juste un exemple :p j'ai pris que la partie utile de mon code pour décrire le bug que je rencontre.
Le problème est visiblement lié à element.getElementsByTagName("script"), qui ne trouve aucun script avec IE, puisque scripts.length vaut 0.
Quelqu'un sait-il pourquoi ça ne fonctionne pas sous IE ?
Je vous remercie et... bonne nuit !
Partager