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
aqui.
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