¿Cómo puedo llamar a una función JavaScript al cargar la página?

Tradicionalmente, para llamar a una función de JavaScript una vez que la página se ha cargado, se añade un atributo "onload" al cuerpo de la página que contiene un poco de JavaScript (normalmente sólo se llama a una función)

<body onload="foo()">

Cuando la página se ha cargado, quiero ejecutar algún código JavaScript para rellenar dinámicamente partes de la página con datos del servidor. No puedo usar el atributo onload porque estoy usando fragmentos JSP, que no tienen ningún elemento body al que pueda añadir un atributo.

¿Hay alguna otra forma de llamar a una función JavaScript en la carga? Preferiría no usar jQuery porque no estoy muy familiarizado con él.

Solución

Si quieres que el método onload tome parámetros, puedes hacer algo similar a esto:

window.onload = function() {
  yourFunction(param1, param2);
};

Esto vincula onload a una función anónima, que cuando es invocada, ejecutará la función deseada, con los parámetros que le des. Y, por supuesto, puedes ejecutar más de una función desde dentro de la función anónima.

Comentarios (4)

**Su pregunta original no era clara, asumiendo que la edición/interpretación de Kevin es correcta, entonces esta primera opción no se aplica.

La opción típica es usar el evento onload:


....

También puedes colocar tu javascript al final del cuerpo; no empezará a ejecutarse hasta que el documento esté completo.


  ...
  <script type="text/javascript">
    SomeFunction();
  </script>

Y, otra opción, es considerar el uso de un framework JS que intrínsecamente hace esto:

// jQuery
$(document).ready( function () {
  SomeFunction();
});
Comentarios (3)
function yourfunction() { /* do stuff on page load */ }

window.onload = yourfunction;

O con jQuery si quieres:

$(function(){
   yourfunction();
});

Si quieres llamar a más de una función en la carga de la página, echa un vistazo a este artículo para más información:

Comentarios (5)