2009-02-24 22 views
7

有人能指點我鉤子DOM加載事件的方向嗎?如何掛接DOM加載的事件?

基本上,我想顯示一個加載器,而DOM正在加載(我不是指Ajax請求 - 第一次用戶點擊頁面)?

感謝所有提前

回答

10

所有流行的JavaScript庫中有一個「DOM加載」事件中,你可以使用這個。

本質:

<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

只是提供給jQuery的替代方案,YUI事件爲此提供了一個onDomReady()功能以及。下面是從他們的網站的例子:

<script type="text/javascript"> 

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

</script> 
0

正確的方式做到這一點不帶庫(真的,即使有一個圖書館,因爲你處理腳本攔截和IE不可預測性)是把一個腳本在在頁面的最末尾:

裝載的=功能(){...}

裝載的()

28

如果你不使用框架,使用DOMCon tentLoaded event:

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

太棒了! Mozilla在此有一個很好的文檔:https://developer.mozilla.org/en/DOM/DOM_event_reference/DOMContentLoaded – philo 2012-06-26 22:44:37