Newsgroup: it.comp.lang.javascript
Titolo: colore in formato "HTML" piuttosto che rgb(1, 2, 3)

Leggendo via javascript lo sfondo di un elemento, ottengo una stringa nel
formato rgb(rosso, verde, blu).
Come posso invece averlo nella forma "HTML" #00000?
Mi riferisco al risultato di un assegnamento tipo
document.getElementById('col1').style.backgroundColor;
Alex.
-- 
___________________________________________________________
a p bertolini
(Tribů Digitale Blackmambo: 
www.blackmambo.it
)

 Come posso invece averlo nella forma "HTML" #00000?
Non so bene cosa ottieni ma se, come dici te, ottieni un formato
rosso,verde,blu, trasformarlo in #rossoverdeblu non è difficile.
Quello che ottieni immagino però dipenda da cosa hai scritto nel css...se
setti nel css #123456 leggendo poi il backgroundColor ottieni (12,34,56) ?
Strano...
Se fai sapere la sintassi esatta che ottieni ci si può ragionare; se è in
decimale se cerchi trovi function già fatte per la trasformazione in
esadecimale.
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 Come posso invece averlo nella forma "HTML" #00000?
Scritta al volo:
<script type="text/javascript">
	function dec2hex(d){ return (d<16?"0":"")+d.toString(16); };
	function rgbColor2hexColor(sColor){
		var rgb=sColor.match(/\d+/g);
		return (rgb &&
rgb.length==3)?"#"+dec2hex(+rgb[0])+dec2hex(+rgb[1])+dec2hex(+rgb[2]):sColor;
	}
 
</script>
E poi, da script, ti basta fare qualcosa tipo:
alert(rgbColor2hexColor(document.getElementById('col1').style.backgroundColor))
Le stringhe di colore che non sono informato rgb(rr,gg,bb) vengono
restituite cosi' come sono: il che ti consente una certa compatibilita' con
IE, che ti restituisce il colore cosi' com'e' stato scritto nel css, oppure
quando imposti come colore letterale (es "green","black", etc).
-- 
ZER0://coder.gfxer.web-designer/
~ I feel like I'm diagonally parked in a parallel universe.
on air ~ "Motion City Soundtrack - My Favorite Accident"

 Strano...
Suppongo tu non abbia mai recuperato da javascript un colore definito su un
elemento, su un browser che non sia IE. :)
-- 
ZER0://coder.gfxer.web-designer/
~ "L'unica persona che mi chiama con un numero che non conosco
e' il mio ragazzo." (Linda)


 elemento, su un browser che non sia IE. :)
Mah, forse neanche con IE, mai capitata l'occasione.
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 Mah, forse neanche con IE, mai capitata l'occasione.
Adesso e' difficile che lo faccia, ma all'epoca l'ho usato su alcuni widget
DHTML (color picker, ad esempio), o per verificare lo stato di un dato
elemento: "se seleziono/passo sopra un elemento che ha un certo colore,
significa che e' su un certo stato, e devo agire di conseguenza".
-- 
ZER0://coder.gfxer.web-designer/
~ Ci siamo fatti una scopata cosi' eccezionale che anche i vicini hanno
fumato una sigaretta.
on air ~ "Ash - Orpheus"


Grandioso, grazie!
Io avevo fatto un "tokenizer" estraendo dalla stringa i vari pezzetti, ma
così la cosa è un po più compatta.
Alex.
-- 
___________________________________________________________
a p bertolini
(Tribù Digitale Blackmambo: 
www.blackmambo.it
)