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] [JS] innerHTML et IE6


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : nabbo

    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Par défaut [DOM] [JS] innerHTML et IE6
    Bonjour,


    j'essaie d'inverser les lignes d'un table HTML (et pas les colonnes), en javascript.


    J'obtiens un script qui fonctionne sous firfox 2, mais pas sous IE6.
    Sous IE6, la table disparait simplement...


    est ce que IE6 gère mal (pas?) le DOM ?


    qu'est ce que je peux changer dans mon code pour le faire tourner sous ie6 ?


    le 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <script>
    function inverttable()
    {
    	var table=document.getElementById('matable'); //le noeud de ma table
    	var trs=table.getElementsByTagName('tr'); //les tr de ma table
     
    	var newtable=document.createElement('table'); // une nouvelle table
     
    	var contenu;
     
    	for(i=trs.length-1 ; i>=0 ; i--)
    	{
    		var n = trs[i].cloneNode(trs[i],true);
    		newtable.appendChild(n);	//j'ajoute le dernier tr de ma table vers la nouvelle table
    		//alert(n.innerHTML);
    	}
     
    	table.innerHTML='';
    	table.innerHTML+=newtable.innerHTML;// je remplace le contenu de l'ancienne table avec celui de la nouvelle
    	table.innerHTML+='';
     
    }
    </script>
     
    <table id="matable" border="1">
     
    		<tr id="tr1">
    			<td id="un">un</td>
    			<td id="deux">deux</td>
    			<td id="trois">trois</td>
    		</tr>
     
    		<tr id="tr2">
    			<td id="quatre">quatre</td>
    			<td id="cinq">cinq</td>
    			<td id="six">six</td>
    		</tr>		
     
    		<tr id="tr3">
    			<td id="sept">sept</td>
    			<td id="huit">huit</td>
    			<td id="neuf">neuf</td>
    		</tr>
     
    		<tr id="tr4">
    			<td id="dix">dix</td>
    			<td id="onze">onze</td>
    			<td id="douze">douze</td>
    		</tr>	
     
    </table>
     
    <input type="submit" onclick="inverttable();" value="Inverser" />



    merci

  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
    parcequ'il faut appender dans le tbody ...
    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
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : nabbo

    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Par défaut
    appender dans le tbody ne change rien chez moi sur IE6...

  4. #4
    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
    peut être plus simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type='text/javascript'>
    function inverttable()
    {
    	var table=document.getElementById('matable'); //le noeud de ma table
    	var trs=table.getElementsByTagName('tr'); //les tr de ma table
        for(i=0;i<trs.length;i++){
    	 table.getElementsByTagName('tbody')[0].insertBefore(trs[trs.length-1],trs[i]);
    	}
    	}
    </script>
    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 !

  5. #5
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : nabbo

    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Par défaut
    ca marche, merci

    donc on retient : IE6 gère le insertBefore, mais pas trop le innerHTML...

    en tout cas, merci pour ton aide


    edit : effectivement, le problème de innerHTML sur IE6 est connu chez Microsoft : http://support.microsoft.com/?scid=k...9832&x=12&y=12

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

Discussions similaires

  1. [AJAX] cherche équivalent DOM-AJAX à .innerHTML
    Par spidflinch dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/01/2009, 17h36
  2. [DOM] Tableau, innerHTML et IE
    Par van___fanel dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 20/04/2008, 15h43
  3. [DOM] getElementById + innerHTML avec IE
    Par polemoss dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/01/2008, 12h55
  4. [DOM] Equivalent à innerHTML
    Par ndrouard dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/10/2007, 11h20
  5. [DOM] Modification innerHTML impossible
    Par Christophe Charron dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/05/2007, 13h37

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