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 :

IE permet l'utilisation de nouveaux attributs, mais pas Firefox ?


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut IE permet l'utilisation de nouveaux attributs, mais pas Firefox ?
    Bonjour,

    Ceci est mon premier message ici alors je m'excuse d'avance si je suis hors sujet.

    J'ai une question sur les attributs des balises HTML.

    Lorsque j'ai une balise du type :

    <td id="monid" align="center">

    je peux récupérer la valeur de l'attribut align en javascript de la manière suivante :

    var lecture = document.getElementById('monid').align;

    Ca fonctionne bien car l'attribut align est connu du DOM

    Par contre, si j'ai un code HTML de type :

    <td id="monid" monattribut="mavaleur">

    alors le code javascript :

    var lecture=document.getElementById('monid').monattribut;

    fonctionne sous IE mais pas sous Firefox.

    en fait, avec IE, on peut créer de nouveaux attributs qui sont interprétés par le DOM, alors que Firefox n'accepte que les attributs déjà définis par le HTML.

    Est-ce qu'il y aurait une solution pour réaliser ces extensions avec Firefox ? Déclaration préalable ou autre ?

    L'utilisation de ce principe est pratique pour passer des structures de paramètres de html à javascript.

    Merci de vos conseils.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Essayez plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var lecture=document.getElementById('monid').getAttribute('monattribut')

  3. #3
    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 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 638
    Points : 66 667
    Points
    66 667
    Billets dans le blog
    1
    Par défaut
    on peut recupérer des attributs exotiques avec getattribute comme le souligne Vermine si ceux ci n'ont pas étés attribués dynamiquement mais simplement mis en dur dans la balise html.
    Par contre pour un attribut exotique attribué dynamiquement, là IE et ffx sont d'accord:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.getElementById('monid').monattribut='exotique'
    var lecture=document.getElementById('monid').monattribut
    alert(lecture)
    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 !

  4. #4
    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 : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    En fait, il faut différencier les attributs HTML et les propriétés JavaScript.
    Lors de la construction de la page, JavaScript crée un nouvel objet de type HTMLElement.
    Cet objet dispose pour propriétés des attributs autorisés pour cette balise. Il y a donc un lien entre les deux dans ce cadre là, ce qui crée la confusion entre eux.
    Mais il ne s'agit pas pour autant des même choses.
    Pour la plupart des navigateurs, les attributs HTML non autorisés sont ignorés et les propriétés de l'objet non conformes aussi.
    A titre d'exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div onclick="alert(this.toto)"></div>
    renvoie undefined
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div onclick="alert(this.id)"></div>
    une chaîne vide et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div onclick="this.setAttribute('toto','toto');alert(this.toto)"></div>
    Crée bien un attribut toto avec toto comme valeur, mais l'alert renvoie undefined.

    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

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut merci pour vos réponses
    Merci beaucoup, je vais essayer dès demain la méthode getAttribute()
    Je comprends mieux la logique de tout ça.
    Je reviendrai sans doute car du coup, il va falloir que j'adapte tout mon code javascript pour ffox, alors que j'avais fait l'impasse jusque là

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 21/04/2015, 15h27
  2. Bon affichage page html sous ie mais pas firefox
    Par DiDieuh dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 30/07/2009, 13h19
  3. [PHP 5.2] Realpath fonctionne avec le navigateur d'eclipse mais pas firefox
    Par Polymorph dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2009, 08h50
  4. Lecteur flash s'affichant sous IE mais pas firefox
    Par phoenixn0ir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 09/10/2008, 19h26
  5. [AJAX] Script qui plante IE mais pas Firefox
    Par Booyakha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/05/2006, 18h40

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