Evaluer du Javascript � la vol�e
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:
Code:
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> |
Au chargement de Test.html, on devrait voir une box alert affichant "Test". Ce n'est pas le cas sous IE.
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 !