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] parentNode différent en IE et Mozilla


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut [DOM] parentNode différent en IE et Mozilla
    Bonjour,

    Je viens de me rencontre d'un petit problème.
    Je développais une page web dont je fesais les tests sous Mozilla.

    Maintenant que je change de navigateur une erreur survient.
    La valeur du parentNode ne renvoie pas la même chose selon IE ou Mozilla.

    Voila le code html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <body> 
    <form id="test" method="post" action="submit">
             <titi>
    	<input type="button" id="Ajouter" onclick="Ajout(parentNode)" value="add" \>
            </titi>
    </form>
    </body>
    et mon affiche de l'élément passé en paramètre à ma fonction Ajout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function Ajout(elt) {	
    	alert (elt.nodeName);
    }
    Avec Mozilla cela m'affiche titi et avec IE cela m'affiche FORM.

    Comment pourrais-je résoudre ce problème ?

  2. #2
    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
    parentNode est une propriété: tu ne peux l'utiliser sans la faire précéder de l'objet qui t'intéresse;

    (pour le reste, je n'ai pas réfléchi au problème, vue l'erreur de syntaxe);

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut
    Qu'est ce que je dois faire dans ce cas si alors.
    Je ne vais pas faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" id="Ajouter" onclick="Ajout(titi.parentNode)" value="add" \>

    Et ce que je ne comprends pas c'est pourquoi sa marche sur mozilla et pas sur IE.
    En plus j'utilise Firebug sous Mozilla et il m'indique aucune erreur.

  4. #4
    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
    disons que dans une page "html", IE ne prendra en compte, en règle général, que les balises définies dans ce langage.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut
    Donc ce que j'ai fait ne pourra jamais être lancer sous IE si je comprends bien

  6. #6
    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
    non : this
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" id="Ajouter" onclick="Ajout(this.parentNode)" value="add" />
    Attention la fin de la balise est /> et non \>

    l'écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tagname onclick="...">
    définit une methode sans argument onclick sur l'objet tagname dans le corps de cette methode this désigne l'objet lui même soit donc tagname c'est objet est une instance de la classe DomElement il à donc toutes les propriété d'un élémen du dom

    Par principe n'utilisez jamais les variables définie intrinsectement
    par exemple dans IE le simple fait d'avoir un tag avec un id l'utilisation du nom de l'id comme variable référence implicitement le tag portant l'id
    cela marait séduisant et simplifie l'écriture mais n'est absolument pas portable.

    de même dans une methode d'un objet sous FF this.property ou property sont équivalent là encore ce n'est pas portable

    donc utilisez toujours la forme explicite et ça marchera partout (ou presque)
    A+JYT

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut
    Merci pour cette réponse complète.

    J'ai donc modifier ma balise comme vous me l'avez indiqué.
    Malheureusement IE n'apprécie toujours pas, je pense comme à dit javatwister, que IE n'arrive pas à gérer ma balise titi car celle-ci ne fait pas partie de la norme HTML

  8. #8
    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
    et le plus marrant est que IE repèrera l'id d'une balise fantaisiste si tu utilises getElementsByTagName; mais pour le reste, l'élément est invisible;

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

Discussions similaires

  1. data center diffèrents entre ie et mozilla sur google
    Par kate59 dans le forum Référencement
    Réponses: 3
    Dernier message: 27/01/2010, 13h55
  2. Padding & IE, résultat différent de Mozilla
    Par dark_vidor dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 05/01/2009, 23h36
  3. [DOM] texte défilant à 2 endroits différents
    Par laurentSc dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 05/05/2008, 00h28
  4. [DOM] Compatibilité Mozilla Firefox
    Par tim1789 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2008, 18h12
  5. Réponses: 4
    Dernier message: 06/02/2007, 15h18

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