Con el evento onload podemos ejecutar acciones justo cuando se han terminado de cargar todos los elementos de la página.
El evento onload de Javascript se activa cuando se termina de cargar la página. Cuando necesitamos hacer cosas en el momento en el que la página haya terminado de cargar, podemos asociar un manejador de evento onload en la
etiqueta <body>
.
En versiones actuales de Javascript el evento onload también lo aceptan otros elementos de la página, como las imágenes. Como te podrás imaginar, si asociamos un manejador de evento al onload de una imagen, se ejecutará cuando la imagen haya terminado de cargar.
Evento onload para detectar cuándo la página termino de cargar
Con el evento onload podemos ejecutar acciones justo cuando se han terminado de cargar todos los elementos de la página. Es un evento bastante utilizado pues es muy habitual que se deseen llevar a cabo acciones en ese preciso instante. En nuestro ejemplo vamos a ver cómo podríamos hacer un script para motivar a nuestros visitantes a que nos voten en un ranking cualquiera de páginas web.
La idea es que la página se cargue entera y, una vez esté cargada, aparezca una ventana de Javascript donde se proponga al visitante votar a la página. Es interesante esperar a que termine de cargar la página entera para que el visitante pueda ver la web que se propone votar, antes de que realmente le pidamos su voto.
El código sería el siguiente:
<html>
<head>
<title>Votame!!</title>
<script language="JavaScript">
function pedirVoto(){
if (confirm("Esta página está genial (ya la puedes ver). Me das tu voto?")){
window.open("http://www.loquesea.com/votar.php?idvoto=12111","","")
}
}
</script>
</head>
<body onload="pedirVoto()">
<h1>Página SuperChula</h1>
<br>
Esta página está muy bonita. Soy su autor y te puedo asegurar que no hay muchas páginas con tanta calidad en Internet
<br>
<br>
<a href="#">Entrar</a>
</body>
</html>
Nos fijamos que en la etiqueta <body>
tenemos definido un manejador del evento en onload="pedirVoto()"
. Es decir, que cuando se cargue la página se llamará a una función llamada pedirVoto(), que hemos definido en el bloque de script que tenemos en la cabecera.
La función pedirVoto() utiliza una caja confirm para saber si realmente el usuario desea votarnos. La función confirm() muestra una caja con un texto y dos botones, para aceptar o cancelar. El texto es lo que se recibe por parámetro. Dependiendo de lo que se pulse en los botones, la función confirm() devolverá un true, si se apretó el botón aceptar, o un false, en caso de que se pulsase sobre cancelar.
La función confirm() está a su vez metida dentro de un bloque condicional if, de modo que, dependiendo de lo que se pulsó en la caja confirm, el if se evaluará como positivo o negativo. En este caso sólo se realizan acciones si se pulsó sobre aceptar.
Para acceder a la página donde se contabiliza nuestro voto tenemos el método window.open(), que sirve para abrir ventanas secundarias o popups. Mostramos la página donde se vota en una ventana secundaria para que el visitante no se marche de nuestra web, ya que acaba de entrar y no deseamos que se vaya ya.
Con esto queda más o menos ilustrado cómo hacer uso del evento onload. Seguro que en vuestras creaciones habrá muchos más casos donde utilizarlo.
Definición de manejadores de eventos mediante Javascript
En la actualidad es más común que asociemos los manejadores de eventos directamente con código Javascript, sin usar los atributos del HTML como "onload". Es una buena práctica hacerlo desde Javascript porque así evitamos mezcar código de programación dentro del código HTML, lo que impactará positivamente en la mantenibilidad de la página.
Podemos indicar el manejador de evento "load" sobre el objeto window, de modo que se ejecute el código que necesitemos al cargarse la página. Lo haremos de esta manera:
window.addEventListener('load', function() {
console.log('La página ha terminado de cargarse!!');
});
Este código lo podríamos colocar en cualquier lugar de la página, o en un archivo .js externo que se cargue mediante la etiqueta <script>
.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...