Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Прогрузилась ли вся страница? (https://javascript.ru/forum/events/1959-progruzilas-li-vsya-stranica.html)

chtopor 10.10.2008 13:05

Прогрузилась ли вся страница?
 
Доброе всем время суток
Не подскажите как на js можно определить прогрузились ли все элементы страницы (втом числе и внешние css и js файлы)?

Kolyaj 10.10.2008 13:31

Хотя бы так
Код:

<body onLoad="alert('Все загрузилось')">

chtopor 10.10.2008 13:37

Цитата:

Сообщение от Kolyaj
onLoad="alert('Все загрузилось')

А другой способ есть? Потому что я использую GreyBox, который на jquery, и он не работает корректно если я использую <body onLoad...

Octane 10.10.2008 16:29

У Вас же есть jQuery
$(window).bind('load', function() {
// Ваш код
});

OlexandrI 31.10.2008 22:26

а что делать, чтоби такое работало:
<script>
function get(id){return document.getElementById(id);}
...
test=get("hh");
</script>
....
<div class="d1" id="d1" onclick="alert(1);" align=center valign=center>
    <div class="d2" id="d2" onclick="alert(2);" align=center valign=center>
        <div class="d3" id="d3" onclick="alert(3)">,</div>
    </div>
</div>
?
Как надо изменить функцию get()?

Octane 31.10.2008 22:33

function get(id) {
    return document.getElementById(id);
}
…
window.onload = function() {
    var test = get("hh");
};

Получать элемент по идентификатору можно только после того, как будет готов DOM, поэтому выполняем действие по событию window.onload, но это событие срабатывает только после того, как будет загружены все изображения и подключаемые файлы, чтобы начать работать раньше, можно использовать событие DOMContentLoaded, если интересно, погуглите, существует много вариантов его кросс-браузерной реализации.

Kolyaj 31.10.2008 23:02

Цитата:

Сообщение от Octane
Получать элемент по идентификатору можно только после того, как будет готов DOM

Получать элемент (любым способом) можно после того, как он был описан в html-коде или вставлен в DOM яваскриптом. При этом не обязательно дожидаться события DOMContentLoaded.

Octane 31.10.2008 23:13

Ну да, но так придётся inline-скрипты использовать

Kolyaj 31.10.2008 23:43

Достаточно подключать скрипты после body.

OlexandrI 01.11.2008 13:44

надо так
function get(id) {
    window.onload = function() {
    var ElEm = document.getElementById(id);
    }
  return ElEm;
};
?


Часовой пояс GMT +3, время: 00:41.