1. El nombre del atributo es backgroundColor no background.
2. Si haces un
Código Javascript
:
Ver originalalert(document.getElementById(COLOR.id).style.backgroundColor)
veras que en vez de decir #000000 dice rgb(0, 0, 0).
Y ahora alucina con la solución que te he encontrado
Código Javascript
:
Ver originalfunction Funcion2(COLOR) {
var aux=document.getElementById(COLOR.id).style.backgroundColor;
alert(aux);
if (rgbConvert(aux) == "#000000"){
document.getElementById(COLOR.id).style.backgroundColor="#ffffff";
}
else {
document.getElementById(COLOR.id).style.backgroundColor = "#000000";
}
}
function rgbConvert(str) {
str = str.replace(/rgb\(|\)/g, "").split(",");
str[0] = parseInt(str[0], 10).toString(16).toLowerCase();
str[1] = parseInt(str[1], 10).toString(16).toLowerCase();
str[2] = parseInt(str[2], 10).toString(16).toLowerCase();
str[0] = (str[0].length == 1) ? '0' + str[0] : str[0];
str[1] = (str[1].length == 1) ? '0' + str[1] : str[1];
str[2] = (str[2].length == 1) ? '0' + str[2] : str[2];
return ('#' + str.join(""));
}
Código HTML:
Ver original<input name="boton" type="button" id="boton" onClick="Funcion2(this)" style="background-color: #000000">
Una funcion que convierte el texto rgb(0,0,0) a #000000
Fijate que uso this para pasar el objeto, esto lo puedes cambiar y poner directamente el id del boton.
Tambien puedes sacar el alert().
Lo he encontrado [URL="http://www.tek-tips.com/viewthread.cfm?qid=1436140&page=11"]aqui[/URL].
Si alguien lo sabe, nos podría explicar el porque de esa, aparentemente, incoherencia de javascript.
Claro que como se trata de textos tambien se puede hacer esto y funciona
Código Javascript
:
Ver originalfunction Funcion2(COLOR) {
var aux=document.getElementById(COLOR.id).style.backgroundColor;
alert(aux);
if (aux == "rgb(0, 0, 0)"){
document.getElementById(COLOR.id).style.backgroundColor="#ffffff";
}
else {
document.getElementById(COLOR.id).style.backgroundColor = "#000000";
}
}
Fijate en las comillas aux ==
"rgb(0, 0, 0)
"
Quim