Todo el mundo ha mencionado la función ready
(y sus accesos directos), pero incluso antes de eso, sólo puede poner el código en una etiqueta script
justo antes de la etiqueta de cierre body
(esto es lo que la gente cierre Yui y Google recomiendan), así:
<script type='text/javascript'>
pageLoad();
</script>
</body>
En este punto, todo lo que está encima de esa etiqueta de secuencia de comandos está disponible en el DOM.
por lo que sus opciones en orden de aparición:
Apertura: llamada a la función en script
etiqueta justo antes de cerrar la etiqueta body
. El DOM está listo en este momento (según la gente de Google Closure, y deberían saberlo, también lo he probado en varios navegadores).
Earlyish: la devolución de llamada jQuery.ready
(y sus formas de acceso directo).
tarde, después de todos elementos de la página, incluyendo imágenes están a plena carga: window
onload
evento.
Aquí está un ejemplo vivo: http://jsbin.com/icazi4, extracto pertinente:
</body>
<script type='text/javascript'>
runPage();
jQuery(function() {
display("From <tt>jQuery.ready</tt> callback.");
});
$(window).load(function() {
display("From <tt>window.onload</tt> callback.");
});
function runPage() {
display("From function call at end of <tt>body</tt> tag.");
}
function display(msg) {
var p = document.createElement('p');
p.innerHTML = msg;
document.body.appendChild(p);
}
</script>
(Sí, podría haber utilizado jQuery para la función display
, pero estaba comenzando con una plantilla no jQuery.)
Aclaración para los demás: que 'la función $() {..});' es una versión abreviada de los '$ oficiales (documento) ready (function() {... }); '. Ver http://learn.jquery.com/using-jquery-core/document-ready/. –