Archive

Posts Tagged ‘javascript’

Formato de moneda en JavaScript

agosto 30, 2010 Comments off

La función quedó un poquito larga pero permite especificar el número de decimales y los separadores (que varían de país a país).

function currency(value, decimals, separators) {
    decimals = decimals >= 0 ? parseInt(decimals, 0) : 2;
    separators = separators || ['.', "'", ','];
    var number = (parseFloat(value) || 0).toFixed(decimals);
    if (number.length <= (4 + decimals))
        return number.replace('.', separators[separators.length - 1]);
    var parts = number.split(/[-.]/);
    value = parts[parts.length > 1 ? parts.length - 2 : 0];
    var result = value.substr(value.length - 3, 3) + (parts.length > 1 ?
        separators[separators.length - 1] + parts[parts.length - 1] : '');
    var start = value.length - 6;
    var idx = 0;
    while (start > -3) {
        result = (start > 0 ? value.substr(start, 3) : value.substr(0, 3 + start))
            + separators[idx] + result;
        idx = (++idx) % 2;
        start -= 3;
    }
    return (parts.length == 3 ? '-' : '') + result;
}

El primer parámetro debe ser un número (cualquier valor inválido regresa “0.00”). Este es el único parámetro obligatorio.

El segundo parámetro es el número de decimales (por defecto 2) y el tercero es un arreglo con los separadores en este orden: Separador de miles, separador de millones, separador de decimales. Por defecto es ['.', "'", ','] que es el que se usa en Colombia.

Algunos ejemplos:

currency(NaN); // "0.00"
currency(0); // "0.00"
currency(123456567.89); // "123'456.567,89"
currency(-123456567.89); // "-123'456.567,89"
currency(1234.56, 1); // "1.234,5"
currency(1234.56, 1, [',', "'", '.']); // "1,234.5"

Licencia: MIT

Eliminando el borde gris de Flash

mayo 21, 2009 1 comment

Debido a que EOLAS demandó a Microsoft por una patente… Pausa para apreciar la ironía… Internet Explorer comenzó a agregar un borde gris alrededor de cualquier película flash y solo se elimina al hacerle clic para activarlas.

Este es el método más sencillo para eliminar ese molesto borde gris en las animaciones flash. Fué inventado por Tohle Býval y no podría ser más sencillo: Solo hay que incluir un script en la cabecera de la página.

IMPORTANTE: Antes de continuar, debo aclarar que este método solo funciona si se está abriendo la página desde un servidor web. Puede ser Apache o IIS montado en el mismo equipo o también el servidor de hosting que usted tenga. Pero si prueban a abrir el HTML diréctamente desde el disco no va a funcionar.

Bueno, no más preámbulos. Justo antes de cerrar la etiqueta <head> hay que agregar el siguiente código:

<!--[if IE]>
<script type="text/javascript" src="fix_eolas.js"
	defer="defer"></script>
<![endif]-->
</head>

Es de vital importancia que mantengan el defer=”defer” para que el script se ejecute cuando todas las películas ya hayan cargado. Además usamos comentarios condicionales para que solo Internet Explorer vea el script.

En esa etiqueta nos referimos a este archivo fix_eolas. El código es muy sencillo:

var objects = document.getElementsByTagName("object");

for (var i=0; i<objects.length; i++)
	objects[i].outerHTML = objects[i].outerHTML;

Lo que ese código hace es re-insertar todas las etiquetas <object>. Con eso es suficiente para eliminar el borde gris de activación.

Para recapitular, si ud. desea eliminar el borde gris solo tiene que hacer lo siguiente:

  1. Agregar la etiqueta a la cabecera.
  2. Guardar el archivo fix_eolas junto con el HTML.
  3. Asegurarse de que está probando desde un servidor web y no desde el disco duro.
  4. ???
  5. ¡Hacerse rico!
Categories: General Tags: , ,