[Javascript] [Résolu] createElement et IE

createElement et IE [Javascript] [Résolu] - HTML/CSS - Programmation

Marsh Posté le 27-06-2006 à 17:15:49    

J'ai un souci de compatibilité entre Firefox et IE.
 
Le script suivant marche parfaitement sous firefox, et ne génère aucune trace dans la console Javascript. En revanche sous IE, il ne marche que très partiellement, mais il ne semble pourtant pas générer d'erreur de script. :/
 
 
Le code Js:

Code :
  1. function removeInputFile(num){
  2. var inputFile = document.getElementById('linkedFile'+num);
  3. var removeLink = document.getElementById('removeInputFile'+num);
  4. var br = document.getElementById('br'+num);
  5. document.getElementById('linkedFiles').removeChild(inputFile);
  6. document.getElementById('linkedFiles').removeChild(removeLink);
  7. document.getElementById('linkedFiles').removeChild(br);
  8. }
  9. function addInputFile(num){
  10. var input = document.createElement("input" );
  11. input.setAttribute("type", "file" );
  12. input.setAttribute("name", "linkedFile" + num);
  13. input.setAttribute("id", "linkedFile" + num);
  14. var br = document.createElement("br" );
  15. br.setAttribute("id", "br" + num);
  16. var removeLink = document.createElement("a" );
  17. removeLink.setAttribute("onclick", "removeInputFile("+num+" )" )
  18. removeLink.setAttribute("href", "#documents" )
  19. removeLink.setAttribute("id", "removeInputFile"+num)
  20. removeLink.appendChild(document.createTextNode('Supprimer'));
  21. document.getElementById('linkedFiles').appendChild(br);
  22. document.getElementById('linkedFiles').appendChild(input);
  23. document.getElementById('linkedFiles').appendChild(removeLink);
  24. var link = document.getElementById('addInputFileLink');
  25. num = num+1;
  26. link.setAttribute("onclick", "addInputFile("+num+" )" );
  27. }


 
Le code html :

Code :
  1. <div class="documents" anchor="documents">
  2. <span>Joindre documents</span>
  3. <br/>
  4. <div id="linkedFiles" name="linkedFiles">
  5.  <input type="file" name="linkedFile0" />
  6. </div>
  7. <a href="#documents" onclick="addInputFile(1)" id="addInputFileLink">Ajouter un document</a>
  8. </div>


 
Le résultat sous Firefox :
http://img458.imageshack.us/img458/3036/inputfiles5xs.jpg
 
Sous IE, je peu executer 1 seule fois la fonction addInputFile, qui fonctionne correctement puisque visuellement, l'input et le liens apparaissent. Mais lorsque j'essaie de nouveau de cliquer sur le lien supprimer, ou bien lorsque j'essaie d'ajouter un document plus rien ne se passe...
 
Merci de votre aide


Message édité par Benzo29 le 27-06-2006 à 17:58:48
Reply

Marsh Posté le 27-06-2006 à 17:15:49   

Reply

Marsh Posté le 27-06-2006 à 17:21:13    

A les suprises de l'implémentation du DOM dans IE...
De la MSDN:

Citation :

The NAME attribute cannot be set at run time on elements dynamically created with the createElement method. To create an element with a name attribute, include the attribute and value when using the createElement method.


C'est beau non?
Un petit article sur comment contourner tout ça: http://www.easy-reader.net/archive [...] entations/

Reply

Marsh Posté le 27-06-2006 à 17:26:27    

anapajari a écrit :

A les suprises de l'implémentation du DOM dans IE...
De la MSDN:

Citation :

The NAME attribute cannot be set at run time on elements dynamically created with the createElement method. To create an element with a name attribute, include the attribute and value when using the createElement method.


C'est beau non?
Un petit article sur comment contourner tout ça: http://www.easy-reader.net/archive [...] entations/


 
C'est beau, en effet :o
 
Merci bien :jap:

Reply

Sujets relatifs:

Leave a Replay

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