IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Internet Explorer createElement avec <table>


Sujet :

JavaScript

  1. #1
    jux
    jux est déconnecté
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Par défaut Internet Explorer createElement avec <table>
    Bonjour,

    J'ai découvert horrifié que innerHTML ne fonctionne pas, notamment, avec les balises <table>, <tr> avec Internet Explorer. Je suis donc obligé de construire mon html avec les DOM.

    Mais là je suis dégouté car le code suivant ne fonctionne pas sur IE (8) mais fonctionne bien sur Firefox, Chrome, Safari :

    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
    16
    17
    18
    19
    20
     
    <div id=content>
    <table name=global_table id=global_table align=center  border=1  class=pol style="border-collapse:collapse; padding:7px;" cellpadding=10px>
    </table>
    </div>
    </script>
    var tr_lib=document.createElement('tr');
    tr_lib.setAttribute('class','pol3');
    tr_lib.setAttribute('className','pol3');	//IE
    var tab_lib=new Array('Type','Date ','Garantie','Adresse','Référence');
     
    for(i in tab_lib)
    {
    	var td_lib=document.createElement('td');
    	var text_lib=document.createTextNode(tab_lib[i]);
    	td_lib.appendChild(text_lib);
    	tr_lib.appendChild(td_lib);
    }
    document.getElementById('global_table').appendChild(tr_lib);
    </script>
    Merci beaucoup

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    il faut appender dans le thead ou tbody de la balise table même si tu n'en n'a pas explicitement mis, le tbody est créé par le DOM
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Moi ce qui m’aurait horrifié c’est d’être obligé d’utiliser innerHTML…
    Cela dit, mets une balise <tbody> en dur dans ton code, ça t’évitera des surprises.

    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    En plus de ce qui a déjà été dit, ton code HTML est impropre. Même si c'est "toléré" en HTML4 de ne pas entourer les valeurs des attributs de guillemets, cela reste une pratique à proscrire.
    Ensuite, faire un for in sur un Array est suicidaire, puisque cela énumère toutes les propriétés du tableau, y compris celles qui n'ont rien à voir avec ses valeurs.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    jux
    jux est déconnecté
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Par défaut
    Merci pour votre réponse, en effet ça fonctionne.
    Mais je suis bien embêté pour le innerHTML car le code html que je met dans les <tr> de ma <table> est assez conséquent, donc voilà je suis obligé de tout recoder en DOM ... Et à cause de IE ....

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    pas vraiment d'accord Bovino; c'est un Array déclaré, sans surprise, et la boucle ne révèlera aucune propriété non voulue

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ahhh !!!
    Tu m'énerves d'avoir raison !

    Je suis victime de mes préjugés sur les boucles for in et j'étais resté persuadé que ces boucles sur les objets de type Array ressortaient les propriétés héritées du type length ou autres.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    jux
    jux est déconnecté
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Par défaut
    Merci pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/08/2007, 16h24
  2. [DOM] sous internet Explorer probleme avec appendChild
    Par magnus2005 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/03/2006, 17h04
  3. Pb avec Internet explorer
    Par wareq dans le forum IE
    Réponses: 31
    Dernier message: 28/04/2005, 17h33
  4. [W3C] pb avec Internet Explorer
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/03/2005, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo