1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    décembre 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 232
    Points : 144
    Points
    144

    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
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    10 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 10 054
    Points : 19 996
    Points
    19 996

    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 );
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  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 : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : septembre 2008
    Messages : 226
    Points : 327
    Points
    327

    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) ».
    Vous cherchez à apprendre les bases en langage « C », « Go », « Rust », « PHP 7 », « Java 9 » ou « Python 3 » ? N'hésitez pas à me contacter par MP.

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    décembre 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 232
    Points : 144
    Points
    144

    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 : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : septembre 2008
    Messages : 226
    Points : 327
    Points
    327

    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 »
    Vous cherchez à apprendre les bases en langage « C », « Go », « Rust », « PHP 7 », « Java 9 » ou « Python 3 » ? N'hésitez pas à me contacter par MP.

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    décembre 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 232
    Points : 144
    Points
    144

    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