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 :

[DOM] Problème DOM et IE


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut [DOM] Problème DOM et IE
    Bonjour,

    est-ce quelqu'un pourrait-il m'expliquer pourquoi le script ci-dessous ne fonctionne pas sous IE ?

    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
    21
    22
    23
    24
    25
    26
    <html>
    <head>
    <title>test</title>
    </head>
    <body>
     
    <div id="zone_resultats" style="border:1px solid #FF0000;"></div>
     
    <script type="text/javascript">
    	var tableau = document.createElement('table');
    	document.getElementById('zone_resultats').appendChild(tableau);
    	//
    	for (var i = 0; i < 5; i++) {
    		//
    		var ligne = document.createElement('tr');
    		var cellule = document.createElement('td');
    		var texte = document.createTextNode("TD n°"+i);
    		//
    		cellule.appendChild(texte);
    		ligne.appendChild(cellule);
    		tableau.appendChild(ligne);
    	}
    </script>
     
    </body>
    </html>
    normalement je devrais avoir ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div id="zone_resultats" style="border:1px solid #FF0000;">
    <TABLE>
    <TR>
    <TD>TD n°0</TD></TR>
    <TR>
    <TD>TD n°1</TD></TR>
    <TR>
    <TD>TD n°2</TD></TR>
    <TR>
    <TD>TD n°3</TD></TR>
    <TR>
    <TD>TD n°4</TD></TR></TABLE>
    </div>
    non ? En tout cas, sous Firefox ça marche nickel....

    Merci d'avance pour votre aide !

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Cela vient du fait qu'IE oblige de mettre un TBODY dans ta table...
    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
     
    	var tableau = document.createElement('table');
    	tableau.appendChild(document.createElement("TBODY"));
    	tableau = tableau.firstChild;
    	for (var i = 0; i < 5; i++) {
    		//
    		var ligne = document.createElement('tr');
    		var cellule = document.createElement('td');
    		var texte = document.createTextNode("TD n°"+i);
    		//
    		cellule.appendChild(texte);
    		ligne.appendChild(cellule);
    		tableau.appendChild(ligne);
    	}
    	document.getElementById('zone_resultats').appendChild(tableau);

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut
    oulala !!!! un GRAND merci à toi FremyCompany

    j'aurais pu chercher très très longtemps...

    par contre je ne comprend pas trop pourquoi tu m'as mis : tableau = tableau.firstChild;

    Mon code :
    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
    	var table = document.createElement('table');
    	var tbody = document.createElement('tbody');
    	//tableau = tableau.firstChild;
    	for (var i = 0; i < 5; i++) {
    		//
    		var ligne = document.createElement('tr');
    		var cellule = document.createElement('td');
    		var texte = document.createTextNode("TD n°"+i);
    		//
    		cellule.appendChild(texte);
    		ligne.appendChild(cellule);
    		tbody.appendChild(ligne);
    	}
    	table.appendChild(tbody);
    	document.getElementById('zone_resultats').appendChild(table);
    En tout cas, maintenant ça marche...
    Encore merci
    @+

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par Tchupacabra
    oulala !!!! un GRAND merci à toi FremyCompany

    j'aurais pu chercher très très longtemps...

    par contre je ne comprend pas trop pourquoi tu m'as mis : tableau = tableau.firstChild;

    Mon code :
    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
    	var table = document.createElement('table');
    	var tbody = document.createElement('tbody');
    	//tableau = tableau.firstChild;
    	for (var i = 0; i < 5; i++) {
    		//
    		var ligne = document.createElement('tr');
    		var cellule = document.createElement('td');
    		var texte = document.createTextNode("TD n°"+i);
    		//
    		cellule.appendChild(texte);
    		ligne.appendChild(cellule);
    		tbody.appendChild(ligne);
    	}
    	table.appendChild(tbody);
    	document.getElementById('zone_resultats').appendChild(table);
    En tout cas, maintenant ça marche...
    Encore merci
    @+
    Et ben en fait, comme ca tableau devenait égal à TBODY (le premier sous-noed XML de TABLE) et je devais pas remplacer tableau par tbody dans ton code xD

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Attention le DOM ne représente pas les TAG que tu as mis dans ta page. il est le résultat de l'interprétations ce ceux-ci.

    bref le parseur HTML quelque soit le navigateur va tenter d'interpréter ton code est de construire une page donc un arbre DOM conforme à (ce qu'il a compris de) la norme.

    un tableau à toujours un tbody les script sont toujours dans document.script etc.

    si ton code HTML contient des élément non conforme l'interprète va tenter de les rendre conforme.
    par exemple pas de texte entre TR et TD

    etc.

    A+JYT

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

Discussions similaires

  1. [DOM] Problême DOM : removeChild & IE
    Par Oric dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/06/2006, 14h52
  2. Javascript/DOM : problème de formulaire
    Par Jherek dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 14/03/2006, 17h09
  3. [DOM] problème de dom
    Par spilliaert dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/02/2006, 22h18
  4. [DOM] Problème de récuperation de DOM
    Par Oric dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/12/2005, 12h53
  5. [DOM]Problème de liens sous ie
    Par Buster dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/05/2005, 16h13

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