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 :

Javascript DOM childNodes different avec IE et FF


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    F�vrier 2004
    Messages
    557
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Paaaaaa

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 557
    Par d�faut Javascript DOM childNodes different avec IE et FF
    Bonjour,

    Je r�alise des petits tests avec la m�thode "childNodes"
    (j'essaie de me former au DOM).

    J'ai ce petit bout de code ci-dessous qui ce contente de renvoyer le nombre de n�ud enfant.
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <script type="text/javascript">
    function isExpand(ObjId){
    var fils = document.getElementById(ObjId).childNodes;
    alert(fils.length);
    for(var a=0;a<fils.length;a++){
     alert(fils[a]);}
    }
    </script>
    <style>
    </style>
    </head>
    <body>
    <div id="prj" onclick="isExpand(this.id);"><img src="./imgs/minus_over3.gif" align="top"<img src="./imgs/folder.gif" align="top">project<br>
    	<div id="sim" style="position:relative;left:15px">
    	<img src="./imgs/minus_over3.gif" align="top"/><img src="./imgs/folder.gif" align="top"/>simul<br>
    	</div>
    	<div id="cpc" style="position:relative;left:30px">
    	<img src="./imgs/minus_over3.gif" align="top"/><img src="./imgs/CPC.gif" align="top"/>cpc<br>
    	</div>
    	<div id="lp1" style="position:relative;left:45px">
    	<img src="./imgs/minus_over3.gif" align="top"/><img src="./imgs/base.gif" align="top"/>lpar<br>
    	</div>
    </div>
    </body>
    </html>
    Lorsque j'execute ce code sous IE7, j'obtiens la valeur : 6
    sous FireFox j'obtiens la valeur : 11

    D'o� provient cette diff�rence ?

    En plus un truc doit m'�chapper car quand j'essaie de compter les noeuds enfants, je ne trouve aucune de ces 2 valeurs mais 7.
    2 noeuds images
    1 text
    1 br
    3 div

    Merci

  2. #2
    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 : 55
    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
    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

  3. #3
    Membre �clair� Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    F�vrier 2004
    Messages
    557
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Paaaaaa

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 557
    Par d�faut
    Merci pour le lien.

    Pour une fois FF n'est pas terrible sur ce coup l�
    J'ai suivis le lien sur la gestion des n�uds "vides" et r�cup�r� cette fonction afin de faire le m�nage.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    function is_ignorable( nod ) {
      return ( nod.nodeType == 8) || 
             ( (nod.nodeType == 3) && is_all_ws(nod) ); 
    }
    Retest et j'ai encore une diff�rence.

    IE -> 6 childNodes
    FF ->7 childNodes (ce qui semble �tre juste si j'ai bien compris ce que repr�sente un childNodes)

    Une petite id�e pour expliquer cette diff�rence ?

    Le code de test
    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
    55
    56
    57
    58
    59
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <script type="text/javascript">
    function isExpand(ObjId){
    var i=0;
    var fils = document.getElementById(ObjId).childNodes;
    for(var a=0;a<fils.length;a++){
     if(is_ignorable(fils[a])==false){i++;}
    }
    alert(i);
    }
     
    /**
     * Determine if a node should be ignored by the iterator functions.
     *
     * @param nod  An object implementing the DOM1 |Node| interface.
     * @return     true if the node is:
     *                1) A |Text| node that is all whitespace
     *                2) A |Comment| node
     *             and otherwise false.
     */
     
    function is_ignorable( nod ) {
      return ( nod.nodeType == 8) || // A comment node
             ( (nod.nodeType == 3) && is_all_ws(nod) ); // a text node, all ws
    }
     
    /**
     * Determine whether a node's text content is entirely whitespace.
     *
     * @param nod  A node implementing the |CharacterData| interface (i.e.,
     *             a |Text|, |Comment|, or |CDATASection| node
     * @return     True if all of the text content of |nod| is whitespace,
     *             otherwise false.
     */
    function is_all_ws( nod ) {
      // Use ECMA-262 Edition 3 String and RegExp features
      return !(/[^\t\n\r ]/.test(nod.data));
    }
    </script>
    <style>
    </style>
    </head>
    <body>
    <div id="prj" onclick="isExpand(this.id);"><img src="./imgs/minus_over3.gif" align="top"<img src="./imgs/folder.gif" align="top">project<br>
    	<div id="sim" style="position:relative;left:15px">
    	<img src="./imgs/minus_over3.gif" align="top"/><img src="./imgs/folder.gif" align="top"/>simul<br>
    	</div>
    	<div id="cpc" style="position:relative;left:30px">
    	<img src="./imgs/minus_over3.gif" align="top"/><img src="./imgs/CPC.gif" align="top"/>cpc<br>
    	</div>
    	<div id="lp1" style="position:relative;left:45px">
    	<img src="./imgs/minus_over3.gif" align="top"/><img src="./imgs/base.gif" align="top"/>lpar<br>
    	</div>
    </div>
    </body>
    </html>

  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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    il y a un node cleaner mieux que �a ...
    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
    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 : 55
    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
    Citation Envoy� par SPACHFR Voir le message
    Une petite id�e pour expliquer cette diff�rence ?
    Oui : IE et FF n'ont pas la m�me gestion des erreurs dans le code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <img src="./imgs/minus_over3.gif" align="top"<img src="./imgs/folder.gif" align="top">
    la premi�re balise img n'est pas ferm�e
    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

  6. #6
    Membre �clair� Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    F�vrier 2004
    Messages
    557
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Paaaaaa

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 557
    Par d�faut
    d�sol�...... pour le tag img c'est vrai que �a marche mieux....
    7/7

    Un node cleaner mieux, tu peux m'en dire un peu plus. SpaceFrog

    Merci

  7. #7
    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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    http://www.developpez.net/forums/d47...leaner-retour/

    passe la page au node cleaner et du coup le deux navigateurs sont d'accord ...
    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 !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. retrouver un �l�ment ajout� avec les fonction javascript-DOM
    Par adilsoft dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 27/02/2010, 16h16
  2. [PHP-JS] Comportement javascript different avec IE ou FF
    Par aleqxs dans le forum G�n�ral JavaScript
    R�ponses: 10
    Dernier message: 22/04/2008, 20h14
  3. R�ponses: 5
    Dernier message: 09/01/2005, 19h54
  4. [Javascript] Afficher du texte avec des intervalles
    Par Invit�4 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 02/01/2005, 21h29

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