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 :

valeur d'un attribut d'une balise


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut valeur d'un attribut d'une balise
    Bonjour,

    J'ai créé une fonction pour récupérer la valeur de certains attributs de balises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function getProperties(sNodeId , styleProp) {
        var oNode = (typeof sNodeId == "object")?sNodeId:document.getElementById(sNodeId);
     
    	if (oNode.currentStyle)
    		var y = oNode.currentStyle[styleProp];
    	else if (window.getComputedStyle)
    		var y = document.defaultView.getComputedStyle(oNode,null).getPropertyValue(styleProp);
    	return y;
     
    }
    La fonction ne me retourne aucun valeur !

    Par contre, si j'ajoute alert("essai"), le code devenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function getCSSProperty(sNodeId , styleProp) {
        var oNode = (typeof sNodeId == "object")?sNodeId:document.getElementById(sNodeId);
    alert("essai");
    	if (oNode.currentStyle)
    		var y = oNode.currentStyle[styleProp];
    	else if (window.getComputedStyle)
    		var y = document.defaultView.getComputedStyle(oNode,null).getPropertyValue(styleProp);
    	return y;
     
    }
    J'ai un retour de valeur !!!!!!

    Pourquoi et comment contourner ce défaut de débogage ?

    Merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function getProperties(sNodeId , styleProp) {
        var oNode = (typeof sNodeId == "object")?sNodeId:document.getElementById(sNodeId);
     
    	if (oNode.currentStyle)
    		var y = oNode.currentStyle[styleProp];
    	else if (window.getComputedStyle)
    		var y = document.defaultView.getComputedStyle(oNode,null).getPropertyValue(styleProp);
    	return y;
     
    }
    Dans le cas ou oNode.currentStyle==false et window.getComputedStyle==false, 'y' ne prend aucune valeur.

    Et tu sur qu'au moins une de ces 2 conditions soit vrai ?
    Lorsque tu met la fonction "alert", quelle valeur t'affiche t-il ?

    Essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var y;
    if (oNode.currentStyle){
    	y = oNode.currentStyle[styleProp];
    } else if (window.getComputedStyle) {
    	y = document.defaultView.getComputedStyle(oNode,null).getPropertyValue(styleProp);
    } else {
            y = 'une valeur';
    }
     
    return y;

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    Bonjour,

    Absolument, je me suis rendu compte de ce manque. Cependant, il apparait que dans mon code global, une des deux voies est toujours adoptées.

    Néanmoins, c'est vrai qu'il faut prévoir un aiguillage de secours en cas de mauvaises syntaxes de getProperties.

    Par ailleurs, après avoir fouillé tout le week-end, ce matin, enfin , j'ai trouvé ma panne ou plutot celle du code !!

    En fait, certains attributs ont un syntaxe particulière lors du passage du code CSS au code javascript !
    C'est le cas de bakground-color en CSS et backgroundColor en javascript !

    Ainsi Dans mon code global, j'appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     getProperties ('machin', 'background-color');
    pour avoir la valeur de la propriété de couleur de fond alors que j'aurai dû l'appeller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     getProperties ('machin', 'backgroundColor');
    Ainsi j'ai rajouté un morceau de code pour l'interprétation sous IE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        var oNode = (typeof sNodeId == "object")?sNodeId:document.getElementById(sNodeId);
     
    	if (oNode.currentStyle){
    		var y ;
    		if(styleProp=="background-color") y=oNode.currentStyle["backgroundColor"];
    		else y=oNode.currentStyle[styleProp];
    		}
    	else if (window.getComputedStyle)
    	{
    		var y = document.defaultView.getComputedStyle(oNode,null).getPropertyValue(styleProp);
    	}
    	return y;
    Que de temps perdu pour des bétises de monopole de navigateur !!
    Patience est réellement maitresse de toutes les vertues !!!
    Merci

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    oui pour le DOM les propriété de style qui en css s'ecrivent avec un trait d'union s'écrivent sans trait d'union et avec une majuscule sur la caractère suivant le trait d'union supprimé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    background-color => backgroundColor
    margin-top       =>marginTop
    border-bottom    => borderBottom
    list-style-type  =>  listStyleType
    Attention: 
    float = > cssFloat pour FFX
              styleFloat pour IE

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

Discussions similaires

  1. Récupérer la valeur d'un attribut d'une balise séléctionnée par Spinner
    Par kamclasse dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 16/12/2014, 13h14
  2. Réponses: 6
    Dernier message: 06/08/2014, 10h12
  3. [SAX] Problème de récupération d'une valeur dans un attribut d'une balise
    Par Antheadousa dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 10/01/2012, 23h29
  4. Inserer la valeur d'un attribut dans un attribut d'une balise <td>
    Par jubourbon dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/02/2009, 13h39
  5. Modif des attributs d'une balise <param> en javascript
    Par Henri dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/08/2005, 22h20

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