en Tecnoticias
en google
Inicie Sesión





¿Recuperar clave?
¿Quiere registrarse? Regístrese aquí
Quien está en Linea
Hay 1 invitado en línea
Suscripcion RSS
Adsense de Google
XHTML Validator
Valid XHTML 1.0 Transitional
Cotizaciones
DolarHoy
Las más leídas
Ultimas Noticias
Home arrow Tips arrow Javascript arrow Obtener el backgroundColor de un objeto en todos los navegadores
Obtener el backgroundColor de un objeto en todos los navegadores PDF Imprimir E-Mail
Origen: BR Consulting Dev Team   
viernes, 16 de septiembre de 2005
Cuando llega el momento de obtener el valor #XXYYZZ del estilo de un elemento de nuestra página, notamos que Mozilla/Firefox devuelve rgb(decimal, decimal, decimal) en vez de #XXYYZZ como sí lo hace IE y Safari/Konqueror. Acá está la solución. Es cuestión de copiar y pegar el código que está acá abajo en el .js o en el html dentro de la sección javascript, y se lo llama con con document.getElementById("miId").style.backgroundColor.colorToHex().

Código:
// Necesario para la conversion de backgroundColor = rgb(x,y,z) que devuelve Mozilla.
// Safari/IE devuelven directamente #XXYYZZ, que es lo que necesitamos, así que se ignora y
// devuelve bien igual en todos los navegadores (funciona en todos).
// Se lo llama con document.getElementById("miId").style.backgroundColor.colorToHex()
// Tomado de: http://www.codingforums.com/archive/index.php/t-17337.html
String.prototype.leadingZeroes = function( qty, totalPlaces ) {
var s = this;
if ( this.length + qty > totalPlaces ) return s;
for ( var i=0; i s = "0" + s;
return s;
};
String.prototype.rgbToHex = function() {
var colors = this.split(',');
for (var rgb,i=0; (rgb=colors[i]); i++)
colors[i] = parseInt(rgb).toString(16).toUpperCase().leadingZeroes(1,2);
return "#" + colors.join('');
};
String.prototype.colorToHex = function() {
if ( /rgb/.test( this ) )
return this.match(/\((.+)\)/)[1].rgbToHex();
if ( this.length <= 4 )
return this.replace( /#?([a-z0-9])([a-z0-9])([a-z0-9])/i, "#$1$1$2$2$3$3" );
return this.replace(/#?(.+)/, "#$1" );
};
 
< Anterior
Condiciones de Uso - © 2007 Tecnoticias.info