Как перехватить событие, загруженное DOM? - PullRequest
7 голосов
/ 24 февраля 2009

Может кто-нибудь указать мне, как перехватить событие, загруженное DOM?

По сути, я хочу отображать загрузчик во время загрузки dom (я не имею в виду запросы Ajax - когда пользователь впервые заходит на страницу)?

Спасибо всем заранее

Ответы [ 4 ]

29 голосов
/ 09 мая 2012

Если вы не используете платформу, используйте событие DOMContentLoaded:

document.addEventListener('DOMContentLoaded', function() {
  // ...
})
10 голосов
/ 24 февраля 2009

Все популярные библиотеки 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 голосов
/ 18 июня 2010

Правильный способ сделать это без библиотеки (и действительно, даже с библиотекой, поскольку вы имеете дело с блокировкой сценария и непредсказуемостью IE) - это поместить сценарий в самый конец страницы:

onLoaded = function () {...}

OnLoaded ()

0 голосов
/ 24 февраля 2009

Просто чтобы предоставить альтернативу jQuery, YUI Event также предоставляет функцию onDomReady () для этой цели. Вот пример с их сайта:

 <script type="text/javascript">

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

 </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...