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] attributs d'elements DOM non pris en compte (IE6,7)


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2005
    Messages : 7
    Par défaut [DOM] attributs d'elements DOM non pris en compte (IE6,7)
    Bonjour,
    J'essaie de manipuler le contenu de ma page en créant des elements DOM par javascript.

    Tout fonctionne comme il faut sous Firefox, mais sous IE, les attributs des elements créés ne sont pas pris en compte à l'ecran:

    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
     
     
    var div = document.getElementById(widget)
        var elt = document.createElement('div')
            elt.setAttribute('id',id)
            elt.appendChild(document.createElement('br'))
            var table = document.createElement('table')
                table.setAttribute('class','tdCadre')
                table.setAttribute('width','100%%')
                table.setAttribute('cellspacing','0')
                table.setAttribute('cellpadding','0')
                table.setAttribute('border','0')
                elt.appendChild(table)
            var tb = document.createElement('tbody')
                table.appendChild(tb)
            var tr = document.createElement('tr')
                tb.appendChild(tr)
            var td = document.createElement('td')
                tr.appendChild(td)
            var span = document.createElement('span')
                span.setAttribute('class','lien')
                span.setAttribute('onClick','removeOptionJur(\''+id+'\',\''+title+'\',\''+widget+'\')')
                span.setAttribute('style','cursor:pointer')
            alert(span.getAttribute('class'))
                span.appendChild(document.createTextNode(title))
                td.appendChild(span)
     
        div.appendChild(elt)
    Sous Firefox, le class de la <table> 'table' est bien pris en compte, ainsi que le curseur, onclick, style du <span>
    Sous IE par contre, ce n'est pas le cas. J'ai bien le contenu (textNode) du span, mais aucun style ou action sur clic n'est pris en compte

    Le script ne plante pas (comme j'ajoute l'element à l'ecran en dernier et que ça, ça marche)

    Comment est-ce que je devrais m'y prendre pour que ça marche?

    Est-ce qu'il y a un moyen/outil pour afficher la source DOM du document sous IE, contrairement au source brut du serveur? (comme Firebug pour FFox)

    Merci,
    Jonathan

  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
    setAttribute ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     table.className='tdCadre';
     table.style.width='100%';
     ...
    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 du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2005
    Messages : 7
    Par défaut
    Ah d'accord, je vois...

    Eh bien ça marche beaucoup mieux, mais le onclick ne passe toujours pas....
    qu'est-ce que je devrais utiliser pour les evenements?

    J'ai essayé
    span.onclick='removeOptionJur(\''+id+'\',\''+title+'\',\''+widget+'\')'
    et
    span.onClick=etc.
    sans succes

    Merci,
    Jonathan

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    span.onclick=function(){removeOptionJur(id,title,widget)}
    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 du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2005
    Messages : 7
    Par défaut
    Genial, ça marche au poil

    Merci beaucoup

  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
    il te faut lire la doc sur le DOM

    class est un mot réservé l'attribut de classe css s'appelle className

    mais il y a quelques autres attribut dont le nom DOM ne coresponds pas avec celui du tag
    entre autre
    cheked selected posent quelques dificultées
    le W3C n'étant pas très strict sur leur définition il sont diversement interprété en ecmascript

    ainsi dans IE ces deux attribut donne l'état coché ou pas sélectionné ou pas d'un bouton radio une check box ou une option
    mais ce sont defaultCheked defaultSelected qui permettent de créer des élément présélectionnés

    Il faut lire la doc car il y en a pas mal qui portent des ambiguité et donc des interprétation différentes suivant les implémentation de JS
    A+JYT

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

Discussions similaires

  1. [CR 10] Modification Element Entreprise non pris en compte dans CR
    Par Slycoyote dans le forum Débuter
    Réponses: 1
    Dernier message: 14/08/2014, 09h13
  2. Attribut font-size non pris en compte dans un tableau
    Par malta dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 20/09/2008, 13h58
  3. Réponses: 16
    Dernier message: 19/05/2008, 17h09
  4. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57
  5. [event] keyListener non pris en compte
    Par pierre.zelb dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/08/2005, 08h35

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