2009-02-24 7 views
7

Kann mir jemand in die Richtung zeigen, in die das DOM-geladene Event gehängt wird?Wie hooke ich das DOM geladene Event?

Grundsätzlich möchte ich einen Loader anzeigen, während der Dom geladen wird (ich meine nicht Ajax Anfragen - das erste Mal, dass ein Benutzer eine Seite trifft)?

Dank alle im Voraus

Antwort

10

Alle der populären JavaScript-Bibliotheken haben ein Ereignis „DOM geladen“ Sie dafür verwenden können.

Im Wesentlichen:

<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

nur eine Alternative zu jQuery zur Verfügung zu stellen, bietet YUI Ereignis eine onDomReady() Funktion für diesen Zweck auch. Hier ist das Beispiel von ihrer Website:

<script type="text/javascript"> 

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

</script> 
0

Der richtige Weg, dies zu tun, ohne eine Bibliothek (und wirklich, auch mit einer Bibliothek, da man es zu tun mit Script Blocking und IE Unberechenbarkeit) ist ein Skript stellen das Ende der Seite:

onLoaded = function() {...}

onLoaded()

28

Wenn Sie nicht einen Rahmen, verwenden Sie die DOMCon mit tentLoaded event:

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

Großartig! Mozilla hat ein nettes Dokument dazu: https://developer.mozilla.org/de/DOM/DOM_event_reference/DOMContentLoaded – philo

Verwandte Themen