[JS] script qui fait planter IE et question sur le DOM

script qui fait planter IE et question sur le DOM [JS] - HTML/CSS - Programmation

Marsh Posté le 19-01-2006 à 16:47:28    

J'avais besoin de rendre une liste dynamique, j'ai donc fait un petit script qui permet de rajouter un li dans un ul. Il me fallait aussi un attribut 'value' sur le li.
Et au cours de mes tests je suis tombé sur ce beau petit bout de code qui fait planter IE, mais pas une erreur javascript vraiment planter ( sous FF aucun problème):

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
  4. <head>
  5.   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  6.   <title>Test</title>
  7.   <script type="text/javascript">
  8.       function test(){
  9.         var node = document.createElement('li');
  10.         node.appendChild(document.createTextNode('test'));
  11.         node.setAttribute('value', '1');
  12.         document.getElementById('target').appendChild(node);
  13.       }
  14.       function test2(){
  15.         var node = document.createElement('li');
  16.         node.setAttribute('value', '2');
  17.         node.appendChild(document.createTextNode('text2'));
  18.         document.getElementById('target').appendChild(node);
  19.       }
  20. </script>
  21. </head>
  22. <body >
  23.   <ul id="target"></ul>
  24.   <input type="button" value="test" onclick="test()"/>
  25.   <input type="button" value="plantage" onclick="test2()"/>
  26. </body>
  27. </html>


Bon evidement j'avais commencé par faire comme dans test2, et je fais désormais comme dans test tout court.
 
Mais cela m'amène une question,, y'a-t-il un ordre "normé" dans la déclaration des noeuds quand on utilise le DOM (quelque chose dans le genre on déclare le noeud, son contenu, ses attributs et on l'append)?

Reply

Marsh Posté le 19-01-2006 à 16:47:28   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed