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:
<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
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!
Modifié par bluelambda, 22 August 2011 - 09:22.










Retour en haut












