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 : 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>
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 !