2009-02-24 14 views
7

Czy ktoś może wskazać mi kierunek, w którym ma nastąpić załadowanie zdarzenia DOM?Jak podłączyć wydarzenie DOM?

Zasadniczo chcę wyświetlić program ładujący podczas ładowania domeny (nie mam na myśli żądań Ajax - kiedy użytkownik po raz pierwszy trafi na stronę)?

Dzięki wszystkim z góry

Odpowiedz

10

Wszystko z popularnych bibliotek JavaScript mieć „DOM załadowany” zdarzenie można użyć do tego celu.

Zasadniczo:

<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

Wystarczy, aby zapewnić alternatywę dla jQuery, YUI zdarzeń zapewnia onDomReady() funkcję dla tego celu, jak również. Oto przykład z ich strony:

<script type="text/javascript"> 

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

</script> 
0

właściwy sposób to zrobić bez biblioteki (i naprawdę, nawet z biblioteki, ponieważ masz do czynienia z skrypt blokuje i IE nieprzewidywalność) jest umieszczenie skryptu w bardzo końcu strony:

onLoaded = function() {...}

onLoaded()

28

Jeśli nie używasz ramy, użyj DOMCon tentLoaded event:

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

Świetnie! Mozilla ma niezły dokument na ten temat: https://developer.mozilla.org/en/DOM/DOM_event_reference/DOMContentLoaded – philo