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 :

Comparer une couleur à une valeur


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut Comparer une couleur à une valeur
    Bonjour à tous,
    Je souhaite comparer une couleur à une chaîne représentant une couleur. Dans le script qui suit, seule la première ligne semble fonctionner avec Chrome. Cependant, est-ce que l'introduction de blanc après la virgule peut ne pas toujours être bien interprétée selon les navigateurs?
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	if (getComputedStyle(line, null).color == 'rgb(255, 0, 0)') alert('rouge');
    	if (getComputedStyle(line, null).color == 'rgb(255,0,0)') alert('rouge');
    	if (getComputedStyle(line, null).color == '#ff0000') alert('rouge');
    	if (getComputedStyle(line, null).color == 'red') alert('rouge');

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,

    ce n'est pas difficile à vérifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert( getComputedStyle(line, null).color );

  3. #3
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Plutôt ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(getComputedStyle(line, null).getPropertyValue("color") === 'rgb(255, 0, 0)') {
        alert('rouge');
    }
    Parce que sinon tu t'embêtes avec plein de conditions et pas que le problème des espaces car tu as aussi « #f00 » pour « rgb(255, 0, 0) ».

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut
    J'ai posé cette question parce que j'ai lu à plusieurs endroits que les navigateurs ne renvoient pas tous la même valeur pour
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    getComputedStyle(line, null).color
    J'ai vérifié avec Chrome, IE et FF et ça fonctionne avec les trois.

    Mais est-ce que selon les navigateurs, il peut y avoir des résultats différents avec les deux lignes suivantes:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getComputedStyle(line, null).color
    getComputedStyle(line, null).getPropertyValue("color")

  5. #5
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Pour ton problème avec les navigateurs, cela fonctionne correctement avec « rgb(255, 0, 0) » pour FF, Chrome, IE, Safari et Konqueror.

    En revanche en effet Opera retourne, curieusement un formatage : « #ff0000 »

    Donc tu dois faire une condition pour celui-ci avec « navigator.userAgent »

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut
    En fait, j'ai adopté le code suivant qui me paraît plus général et peut convenir à d'autres cas éventuels:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	if (getComputedStyle(line, null).color == 'rgb(255, 0, 0)') alert('rouge');
    	else if (getComputedStyle(line, null).color == '#ff0000') alert('rouge');
    	else if (getComputedStyle(line, null).color == '#f00') alert('rouge');

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

Discussions similaires

  1. VBA-E attribuer une couleur à une valeur sur un graphique anneau
    Par clanou01 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 17/10/2016, 12h01
  2. [Débutant] Attribuer des couleurs à une plage de valeurs
    Par nat8546 dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/07/2016, 15h18
  3. Réponses: 1
    Dernier message: 23/02/2016, 18h57
  4. imposer une couleur à mes valeurs
    Par marie33000 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/05/2009, 15h41
  5. Spécifier une couleur à une valeur
    Par gregory2526 dans le forum MATLAB
    Réponses: 12
    Dernier message: 06/03/2007, 20h11

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