Bonjour à tous !
Je suis confronté à un gros bug pas bô de Internet Explorer. Le-dit navigateur me fait une plantée magistrale quand j'essaie de faire un .appendChild. Mais attention ! Pas n'importe quand.
Voici mes découvertes (le code ci-dessous est simplement entre les balises <html><body>ici le code</body></html>) :
Ceci fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <script type="text/javascript"> var ob1 = document.getElementsByTagName('body')[0]; var ob2 = document.createElement('DIV'); var ob3 = document.createTextNode('fgdg'); ob2.appendChild(ob3); ob1.appendChild(ob2); </script>
Ceci ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <div> <script type="text/javascript"> var ob1 = document.getElementsByTagName('body')[0]; var ob2 = document.createElement('DIV'); var ob3 = document.createTextNode('fgdg'); ob2.appendChild(ob3); ob1.appendChild(ob2); </script> </div>
Si jamais, ob1 retourne bien l'élément body. Une alert de ob1.appendChild montrera que la fonction existe. J'en déduis simplement que la balise body n'est pas accessible depuis une couche plus profonde. Notre ami Billou dira que c'est au nom de la sécurité... Moi, j'en sais rien. Mais ça m'embête (à moitié) que le site plante sous IE.
J'ai aussi testé avec en appelant un P plutot que le BODY. Alors le P, on peut le mettre n'importe où, y'a pas de problème. C'est quand même curieux, vous n'trouvez pas ?
Si les maîtres es javascript sont parmi nous, j'invoque leur pouvoir et les appelle à la rescousse !!
Rekam
Partager