Accueil > Forum > > > > SetAttribute ne fonctionne pas pour color ??
SetAttribute ne fonctionne pas pour color ??
mardi 3 février 2009 à 15:25:28 |
SetAttribute ne fonctionne pas pour color ??

bw_hades
|
Bonjour à tous,
J'ai passé pas mal de temps à chercher sur le net et sur ce site pour trouver une réponse, mais en vain, alors je pose la question. Voilà le contexte...
J'ai un tableau HTML et le but est de changer la couleur du texte et la couleur du fond de toute une ligne lors de son survol. Pour ça j'ai une petite fonction Javascript appelée sur les événements onmouseover et onmouseout (ce dernier pour remettre la ligne dans son état initial lorsque la souris n'y est plus).
Cette fonction ressemblait à ça :
function changeAttribute (inElement, inAttribute, inValue) { inElement.setAttribute(inAttribute, inValue); }
Elle fonctionne parfaitement lorsque inAttribute a la valeur "bgColor" par exemple, et inValue mettons "#00FF00".
Le problème se pose pour changer la couleur du texte, si je passe "color" pour inAttribute, ça ne fonctionne plus. Je n'ai aucune idée de la raison. Je ne comprends pas ce problème. Suis-je à la ramasse ? Y a-t-il une erreur évidente que mes yeux ne voient pas ?
Pour information, j'ai changé la méthode du coup, et la fonction est désormais (il m'a d'ailleurs fallu un peu de temps avant de découvrir comment lui passer le nom de l'attribut à partir du paramètre, jusqu'à ce que je découvre la fonction eval() ) :
function changeAttribute (inElement, inAttribute, inValue) { eval('inElement.style.' + inAttribute + ' = "' + inValue + '"'); }
Si l'un de vous a des explications, je suis très preneur, ça comblerait une partie de ma curiosité !
Merci par avance à vous tous.
|
|
mardi 3 février 2009 à 15:51:20 |
Re : SetAttribute ne fonctionne pas pour color ??

Bul3
|
Réponse acceptée !
bonjour, sur tous les navigateurs ? il faut faire attention, car là aussi, ils ne réagissent pas tous de la même manière. tu es sur de bgcolor ? c'est pas backgroundColor ? j'ai un gros doute j'avoue ne plus utiliser à cause de ça, et je ne me sert que du element.style.color ou .backgroundColor directement ça me semble bien plus simple et ça fonctionne toujours Cordialement
|
|
mardi 3 février 2009 à 16:15:30 |
Re : SetAttribute ne fonctionne pas pour color ??

bw_hades
|
Réponse acceptée !
Bonjour Bul3.
Je ne peux pas assurer ce comportement sur tous les navigateurs. J'ai testé uniquement sur FireFox 3.0.5 et IE 6. Par contre, je suis sûr de bgColor.
J'ai continué à investiguer et je crois savoir pourquoi. Bêtement, j'ai initialement pensé que setAttribute modifiait "directement" les styles d'un élément HTML d'un point de vue CSS. Or en fait, il semble que ça touche simplement les attributs d'un point de vue HTML. C'est pourquoi il s'agit effectivement de bgcolor et non backgroundColor, ni même background-color. En effet, sur un élément HTML <tr> on peut semble-t-il trouver l'attribut bgcolor, mais l'attribut color pour modifier la couleur du texte ne fonctionne/n'existe pas/n'estpas reconnu.
En fin de compte, il m'apparaît qu'il est plus propre d'utiliser la syntaxe element.style.* pour modifier vraiment les attributs CSS des éléments HTML.
Merci en tout cas pour ta réponse.
|
|
mardi 3 février 2009 à 18:07:20 |
Re : SetAttribute ne fonctionne pas pour color ??

PetoleTeam
|
Bonjour à vous, Pour que la méthode setAttribute fonctionne il faut effectivement que l'on passe un attribut existant, ce qui n'est pas le cas de COLOR, ensuite la notion d'attribut porte sur les "attribut" des balises <TD STYLE="width:200px;">Le texte</TD> ici STYLE est un attribut, mais pas width qui est un élément de l'attribut STYLE, donc on ne peut pas l'atteindre directement.
Un truc aussi sous IExplorer il est nécessaire de mettre le troisième paramètre à 0 ou à false dans la fonction setAttribute...
why? i don't know but ça bug sans ! //------------------------------------- function Change( obj_, attrib_, value_){ obj_.setAttribute( attrib_, value_, 0); }
Il est effectivement préférable d'accéder à l'objet style plutôt qu'à l'attribut style difficilement modifiable à partir de setAttribute sauf peut être bidouillage de la chaine de caractère qu'elle représente.
;O)
|
|
mardi 3 février 2009 à 18:27:39 |
Re : SetAttribute ne fonctionne pas pour color ??

Bul3
|
PetoleTeam me conforte dans le choix "d'éviter" setAttribute ( salutatoi PetoleTeam )
|
|
|
mardi 3 février 2009 à 18:32:28 |
Re : SetAttribute ne fonctionne pas pour color ??

PetoleTeam
|
Salut à toi TheBul3 on peut l'utiliser mais pas seul, avec parcimoni... ;O)
|
|
mardi 3 février 2009 à 18:54:47 |
Re : SetAttribute ne fonctionne pas pour color ??

XtremDuke
|
Juste pour info :
Pour ceux et celles qui souhaitent affecter des valeurs à l'attribut STYLE sous forme littérale (exemple: "backgroundColor: #fff; height: 10px") et en passant par SETATTRIBUTE, il est nécessaire de noter que cette affectation est différente sous IE et les autres navigateurs.
Sous IE
monObjet.setAttribute("cssText", valeur);
Autres navigateurs :
monObjet.setAttribute("style", valeur);
|
|
mercredi 4 février 2009 à 09:34:40 |
Re : SetAttribute ne fonctionne pas pour color ??

bw_hades
|
Merci à tous pour les précisions, dont certaines j'avais pu trouver sur le Net ;)
@PetoleTeam : le troisième paramètre de setAttribute, si je ne dis pas de bétise, indique si la méthode doit tenir compte de la casse (du nom de l'attribute à modifier) ou pas. Par contre, lors de mes tests sous InternetExplorer, je n'ai pas été obligé de passer ce troisème paramètre, sans doute parce que j'entrais directement "bgColor" et non pas "BGCOLOR" ni "bgcolor"...
|
|
jeudi 5 février 2009 à 17:28:01 |
Re : SetAttribute ne fonctionne pas pour color ??

PetoleTeam
|
Bonjour,
| le troisième paramètre de setAttribute, si je ne dis pas de bêtise, indique si la méthode doit tenir compte de la casse |
| mais tout à fait...
quand je dis... | why? i don't know but ça bug sans ! |
| j'exagère quand même un peu, plutôt une incompréhension de ma part sur le comportement de IExplorer, à savoir...
Dans toutes les DOCs MicroSoft il est mentionné BGCOLOR Attribute et bgColor Property ce qui pour moi est différent.
Dans ces mêmes DOCs il est dit que la méthode setAttribute attend comme 1st paramètre the name of the attribute... ...donc qu'est-il normal de passer ?, BGCOLOR normalement il me semble...et bien NON il faut passer bgColor, la propriété BIZARRE NON!!!
Ce comportement est d'autant plus bizarre que pour l'attribut NAME cela ne marche que si l'on passe NAME en majuscule, voir le post http://www.javascriptfr.com/forum/sujet-INNERHTML-IE7_1234397.aspx
C'est pour cette raison que je préconise de mettre le 3th paramètre à 0 ou false pour ne pas avoir de soucis.
Dans ton cas il existe une autre soluce, la modification de la class, grâce à la propriété className qui est représenté par l'attribute CLASS.
;O)
|
|
Cette discussion est classée dans : fonction, fonctionne, inattribute, invalue, inelement
Répondre à ce message
Sujets en rapport avec ce message
La fonction SPLIT (string) ne fonctionne pas sur MAC [ par darb66 ]
Hello,Je developpe une petite fonctionnalite en utilisant la fonction split(string, char) pour pouvoir formater un texte et l'afficher avec la fonctio
fonction getElementById qui ne fonctionne pas... [ par Also know as ]
Bonjour à tous !Voilà j'ai un petit soucis sur un fonction javascript que j'ai créée mais celle-ci ne fonctionne pas sous Internet Explorer et Opera.f
Fonction replace pour remplacer les plus "+" dans variable url [ par hdh ]
Bonjour, Je sue sur une fonction javascript qui remplacerait les signes "+" en "espaces" (pour les afficher dans ma page en javascript) En effet mon
Fonction qui ne fonctionne que par onclick [ par etu54 ]
Bonjour a tous, Voila mon probleme sur lequel je me casse la tete depuis quelques heures est en rapport avec une biblioteque que j'ai trouver sur le
pb avec setInterval [ par hlimaiem ]
Limaiem heykelJ'ai un probleme avec la fonction var chrono = setInterval("go();",3000); elle ne fonctionne pas sur firefox???Y a t il une fonction qu
Un If ne fonctionne pas [ par francoisch ]
Bonjour <p class="MsoNormal" style="MARGIN: 0cm 0
Checkbox maximum 5 [ par fabienfs ]
Bonjour, J'ai un formulaire contenant une centaine de checkbox nomé comme suit : <input type="check
Fonction javasceript ne detecte pas mon attribut css marginLeft [ par barikapix ]
Bonjour tout le monde, Tout d'abord, j'espère que ce n'est pas la 1289756390653721ème f"ois que quelqu'un pose cette question. Voila 1 semaine que j
Probleme de fonction qui fonctionne pas [ par bmahiet ]
Bonjour à tous, J'ai un probleme sur une fonction javascript qui ne fonctionne pas alors qu'ailleurs elle fonctionne je vous explique. [color=blue]
Fonction STOP [ par bydouille ]
Bonjour à tous, Voilà mon soucis : Je lance un lecteur Mp3 avec cela [code=html] <param name="movie" value="sons/dewplayer-vol.swf?son=&a
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|