2009-02-24 13 views
7

¿Puede alguien señalarme en la dirección para enganchar el evento DOM cargado?Cómo conectar el evento DOM cargado?

Básicamente, quiero mostrar un cargador mientras se está cargando el dom (no me refiero a las solicitudes de Ajax, ¿es la primera vez que un usuario entra en una página)?

Gracias a todos por adelantado

Respuesta

10

Todas las bibliotecas populares de JavaScript tienen una "carga DOM" evento puede utilizar para esto.

Esencialmente:

<html> 
<head> 
    <script> 
    // if using jQuery 
    $(document).ready(function() { $('#loading').hide(); }); 
    // if using Prototype 
    document.observe("dom:loaded", function() { $('loading').hide(); }); 
    </script> 
</head> 
<body> 
    <div id="loading">Loading...</div> 
    <!-- rest of page --> 
</body> 
</html> 
0

sólo para proporcionar una alternativa a jQuery, YUI evento proporciona una función onDomReady() para este propósito también. Aquí está el ejemplo de su sitio:

<script type="text/javascript"> 

function init() { 
    YAHOO.util.Dom.setStyle("hidden_element", "visibility", ""); 
} 
YAHOO.util.Event.onDOMReady(init); 

</script> 
0

La forma correcta de hacer esto sin una biblioteca (y realmente, incluso con una biblioteca, ya que está tratando con el bloqueo de la escritura y la imprevisibilidad IE) es poner un script en el final de la página:

onLoaded = function() {...}

onLoaded()

28

Si no está utilizando un marco, utilice el DOMCon evento tentLoaded:

document.addEventListener('DOMContentLoaded', function() { 
    // ... 
}) 
+1

¡Genial! Mozilla tiene un buen documento sobre esto: https://developer.mozilla.org/en/DOM/DOM_event_reference/DOMContentLoaded – philo

Cuestiones relacionadas