Suite à une galère de quelques jours, je voulais juste partager une petite expérience sur un bug étrange d'Internet Explorer...
Lorsque vous voulez ajouter un noeud à élément de votre page (un noeud DOM), si le script qui gère cet ajout n'est pas un fils direct ou en dehors du noeud dans lequel on veut ajouter l'élément, lors de l'ajout (parent.appendChild(newElement)), Internet explorer va afficher une page d'erreur au lieu du contenu de la page réellement générée, indiquant que le serveur est introuvable à cause d'un problème DNS.
J'ai testé sous IE 6 et 7 sous XP SP2 et tous les 2 étaient impactés. J'ai aussi testé d'autres navigateurs pour voir si ils étaient impactés et le résultat a été clair aucun problème pour Firefox 2 ni Safari 3 (pour Windows).
N'ayant pas d'autres navigateurs sous la main, je me suis contenté de ceux-ci.
Voici donc un exemple de code pour vérifier sur votre version d'Internet Explorer :
La seule parade que j'ai trouvée était de déplacer les scripts en fonction des besoins le plus proche possible de la racine XML.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <html> <body> <div id="myId"> <div> <script type="text/javascript"><!-- document.getElementById("myId").appendChild(document.createElement("div")); // --></script> </div> </div> </body> </html>
Partager