Las funciones setInterval y setTimeout en JavaScript

18 09 2008

Estas dos funciones permiten ejecutar una función pasado un cierto intervalo de tiempo. La única diferencia entre ellas es que “setInterval” se ejecutará una y otra vez en intervalos de x segundos, en cambio, setTimeout se ejecutará una sola vez pasados x segundos.

Estas funciones se utilizan sobre todo para realizar animaciones o por ejemplo para redireccionar una página transcurridos x segundos.

Por ejemplo, si quisiéramos programar un reloj en la barra de estado la función más idónea sería setInterval. Teniendo una función llamada “reloj()” que imprime en la barra de estado la hora actual utilizaríamos la función setInterval de esta forma:

 setInterval("reloj()",1000);

El primer parámetro es la función a ejecutar, el segundo es el intervalo en milisegundos, es decir, 1000 milisegundos = 1 segundo. De esta forma, cada segundo se ejecutará la función “reloj()” y por lo tanto se mostrará un reloj con la hora actual que irá cambiando segundo a segundo. La función reloj() podría ser esta:

function reloj() {
var fObj = new Date() ;
var horas = fObj.getHours() ;
var minutos = fObj.getMinutes() ;
var segundos = fObj.getSeconds() ;
if (horas <= 9) horas = "0" + horas;
if (minutos <= 9) minutos = "0" + minutos;
if (segundos <= 9) segundos = "0" + segundos;
window.status = horas+":"+minutos+":"+segundos;
}

La otra función, setTimeout, tiene un uso muy similar, pero como ya hemos dicho, sólo se ejecuta una vez y podemos aprovechar esta característica para redireccionar una página. Por ejemplo:

 setTimeout("document.location.href='http://abrahanapaza.wordpress.com;",5000);

Con este código en 5s el usuario sería redireccionado a Google.

Además estas funciones devuelven un identificador que nos permitirán neutralizarlas con sus respectivas funciones clearTimeout y clearInterval. Es decir:

 var id = setInterval("reloj()",1000);
setTimeout("clearInterval("+id+")",15000);

Con este ejemplo ejecutamos nuestro reloj durante 15 segundos.

En definitiva, sencillas funciones que llegan a resultar muy útiles.





Imprimir una página con JavaScript

18 09 2008

Gracias a Javascript, tenemos la posibilidad (en Netscape 4 y Explorer 5) de ordenar imprimir nuestra página web.

El método window.print()

Este método invoca el mismo cuadro de diálogo al que podemos acceder si pulsamos las opciones de menú Archivo -> Imprimir. De este modo se impide que creadores de páginas web pérfidos y malvados puedan mandar imprimir páginas enormes sin nuestro permiso.

Sin embargo, este método sólo está disponible en Netscape 4 y Explorer 5 (y se supone que en sus siguientes versiones, claro), de modo que para utilizarlo conviene asegurarse de que el navegador del usuario lo tiene.

Una función imprimirPagina()

Esta función comprobará previamente si el usuario tiene un navegador con la capacidad de mandar imprimir desde Javascript, haciendolo en caso afirmativo y sacando un mensaje de error en caso contrario.

function imprimirPagina() {

if (window.print) window.print();

else

alert(“Lo siento, pero a tu navegador no se le puede ordenar imprimir” + ” desde la web. Actualizate o hazlo desde los menús”);

}

Como se puede ver, la comprobación se hace con el método más seguro y corto: comprobando que existe el método. De esta manera nos aseguramos de que la función funcionará (valga la redundancia) en cualquier navegador pasado y futuro.

Probarlo es sencillo, no tenéis más que mandar imprimir ésta página y ver lo que sale.

Dado que el método print() es un método del objeto window es posible imprimir un marco ( frame ) desde otro. No tenéis más que acceder al objeto window que corresponde a dicho marco y ordenarle imprimir con print() .





Como crear cuadros con Hojas de Estilo

18 09 2008

En este articulo crearemos por medio de hojas de estilo cuadros o boxes con un color de fondo y un borde, primero les paso la Hoja de Estilo y luego veremos como realizar modificaciones.

<style type="text/css">
<!--
.cuadro { background-color: #CCCCCC; border: #666666; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}
-->
</style>

Este codigo CSS va entre las etiquetas <HEAD> y </HEAD>. Si sabemos algo de ingles mas o menos sabran para que sirve cada propiedad, sino aqui a continuacion lo vemos en detalle…

  • background-color – Determina el color de fondo.
  • border – Determina el color del borde.
  • border-style – Determina el estilo del borde, a continuacion vemos los diferentes tipos…
Solid
 
Dashed
 
Dotted
 
Double
  • border-top-width – Determina el ancho en pixeles del borde de arriba.
  • border-right-width – Determina el ancho en pixeles del borde derecho.
  • border-bottom-width – Determina el ancho en pixeles del borde de abajo.
  • border-left-width – Determina el ancho en pixeles del borde de la izquierda.

Para aplicarlo a la celda de una tabla el codigo HTML seria asi...

<table width="100" border="0" cellspacing="0" cellpadding="4" align="center">
<tr>
<td class="cuadro">&nbsp;</td>
</tr>
</table>

En negrita esta resaltado el codigo que indica que esa celda utilize la clase "cuadro" que definimos anteriormente, el resultado de esto seria el siguiente...

  

Como ven la tabla tiene sus borde y su fondo tal cual lo definimos, si queremos podemos modificar las propiedades y asi obtener otras variables de colores del fondo y del borde, es cuestion de animarse.

Autor: El Guru Programador
http://www.elguruprogramador.com.ar/zonas/ver.asp?cod=72