[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Событие загрузки элемента DOM
Xes
Не устраивает событие onload для загрузки все страницы т.к. долго грузяться картинки. Можно как то ухнать что загружен интересующий меня тег чтобы послать ajax запрос.
Например: <span id="span_rating">&nbsp;&nbsp;&nbsp;</span>

В голову приходит только мысль через определенный интервал времени (0,5 сек) спрашивать содержимое этого тега и если оно будет не undifined значет объект загружен.



Спустя 28 минут, 57 секунд (9.08.2011 - 12:52) redreem написал(а):
для любого контейнера можно событие onload поставить.

Спустя 8 минут, 28 секунд (9.08.2011 - 13:01) Xes написал(а):
так можно ?
document.getElementById('span_rating').onload 


Спустя 6 минут, 5 секунд (9.08.2011 - 13:07) Xes написал(а):
document.getElementById('span_vote_good').onload = RatingRead;


(( Не фурычит.

Спустя 8 минут, 24 секунды (9.08.2011 - 13:15) redreem написал(а):
я поторопился с onload, проверяйте просто наличие элемента в доме с интервалом например так:

window.setInterval(function(f){if (typeof document.getElementById('span_vote_good')!='undefined') f();},500);

Спустя 1 минута, 2 секунды (9.08.2011 - 13:16) redreem написал(а):
только после срабатывания еще очистить интервал надо, а то будет постоянно вызываться.

Спустя 23 минуты, 24 секунды (9.08.2011 - 13:40) Xes написал(а):
function(f)
буква f сдесь зачем, что она делает, что это за параметр?

Спустя 10 минут, 37 секунд (9.08.2011 - 13:50) sergeiss написал(а):
Цитата (Xes @ 9.08.2011 - 13:23)
Не устраивает событие onload для загрузки все страницы т.к. долго грузяться картинки. Можно как то ухнать что загружен интересующий меня тег чтобы послать ajax запрос.

А какая задача стоит, что ты собираешься в span загружать? Можно же ведь по-другому подойти.

Один из вариантов.
Если у тебя долго грузятся картинки, а ты всё равно используешь АЯКС... Тогда вообще изначально не указывай картинки!!! Только контейнер img. После загрузки страницы запускаешь АЯКС и начинаешь указывать, какие именно картинки грузить. Если нужна некая последовательность загрузки, то можно использовать onload для каждой картинки.

Другие варианты - в зависимости от того, что надо.

Спустя 8 минут, 39 секунд (9.08.2011 - 13:59) Xes написал(а):
Обычная страница грузиться обычным методом, с фото 5-8 штук, плюс на ней счетчики стоят пока счетчики не прогрузяться по событию onload не забускается функция читающая рейтинг объекта из б.д. Выгледит это как дырка которая потом заполняется значениями, после прогрузки всей страницы. Рейтинг выводиться в div обычное число.

Цитата
то можно использовать onload для каждой картинки


Вот как то для div-а не получаеться назначить событие onload.
Там где читал написано что это событие тольок для самой страницы.

Спустя 22 минуты, 33 секунды (9.08.2011 - 14:21) redreem написал(а):
f - это имя функции обработчика.

Спустя 32 минуты, 45 секунд (9.08.2011 - 14:54) sergeiss написал(а):
Цитата (Xes @ 9.08.2011 - 14:59)
Вот как то для div-а не получаеться назначить событие onload.
Там где читал написано что это событие тольок для самой страницы.

Я тебе говорил не про ДИВ, а про картинку! Про тэг IMG. Для него есть onload.

Спустя 34 секунды (9.08.2011 - 14:55) Xes написал(а):
Просто я с такой записью не сталкивался.
Я бы записал так
Цитата
window.setInterval(function(){if (typeof document.getElementById('span_vote_good')!='undefined') { f(); } },500);


Кабы понять на будущее зачем f написана в параметрах функции.
Цитата
function(f){if


Цитата
Я тебе говорил не про ДИВ, а про картинку!

Я не спорю, буду иметь ввиду. Но в данный момент у меня поблизости к диву в который осуществляется вывод, нет картинок (маленьких) на которые можно было бы повесить это событие.

Спустя 32 минуты, 20 секунд (9.08.2011 - 15:27) redreem написал(а):
да, наверно лишняя она, я просто на автомате написал, голова пухнет порой smile.gif

Спустя 15 секунд (9.08.2011 - 15:27) Michael написал(а):
Что значит загружен интересующий меня тег? Браузер то хтмл уже получил(со всеми тегами) и его рендерить начинает.
Загружены полностью(видимы) все картинки в нем?
Навесь на его внутренние картинки обработчик на onload и в них считай - сколько загрузилось(равно ли их количеству).

Спустя 11 минут, 56 секунд (9.08.2011 - 15:39) Xes написал(а):
Помоему нормальный вариант redreem предложил. Сложнее нет смысло что то делать.

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

Спустя 9 минут, 31 секунда (9.08.2011 - 15:49) Michael написал(а):
Я все равно не понимаю, что у тебя за проблемы...
Сразу в html-e после этого элемента можно вставить <script> внутри которого обращаться к элементу выше. Он уже будет доступен. Но делается это обычно в конце <body>

Спустя 41 минута, 59 секунд (9.08.2011 - 16:31) killer8080 написал(а):
Xes

еще есть DOMContentLoaded, но это не кроссбраузерно, он не поддерживается IE
читай здесь

Спустя 50 минут, 8 секунд (9.08.2011 - 17:21) Xes написал(а):
Цитата
Я все равно не понимаю, что у тебя за проблемы...

js подсоеденен отдельным файлом. До этого старался не писать js в html
Цитата
Сразу в html-e после этого элемента можно вставить <script>

Можно, подумаю, может быть и на этом варианте остановлюсь чтобы функцию не юзать определяющею загружен ли элемент. А сразу запустить необходимую функцию после того как будет прочитан <script> после моего div-чика. Скорее всего так и сделаю ....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.