Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Reload фрейма. Событие? (https://javascript.ru/forum/misc/5336-reload-frejjma-sobytie.html)

Zeroglif 05.10.2009 22:03

Reload фрейма. Событие?
 
Есть фрейм в чате, который постоянно "слушает", не закрываясь, onload к нему не применить. Отсюда с фреймом работает функция, постоянно опрашивающая что-то там внутри него (DOM фрейма) по интервалу 500 ms, опросили-сделали, опросили-сделали...

Пользователь из контекстного меню может фрейм перезагрузить. Встаёт вопрос, как поймать точный момент reload-a фрейма, чтобы функция в интервале снова начала работать уже с перезагруженным фреймом. Остановку ловлю, старт ловлю, а момент появления нового DOM не могу...

Kolyaj 05.10.2009 22:27

Цитата:

Сообщение от Zeroglif
а момент появления нового DOM не могу...

documentElement пометить?

Zeroglif 05.10.2009 22:37

Понимаешь, есть старый dom, потом происходит reload и рисуется новый dom. Как поймать временную точку изменения? Что до, что после фрейм событие onload не запускает.

Kolyaj 05.10.2009 22:41

Цитата:

Сообщение от Zeroglif
Пользователь из контекстного меню может фрейм перезагрузить.

А может просто не показывать фрейм пользователю? Использовать его только как транспорт.

А unload/beforeunload у таких фреймов есть?

Zeroglif 05.10.2009 22:49

Kolyaj,

Не, я к страницам отношения не имею и пишу скрипт себе для удобства пользования. Первоначальная страница (набитая фреймами) грузится в обычном порядке, событие ловится и в отношении фрейма запускается функция, которая читает его и немного изменяет. Постоянно. Если связь порвётся или "работать автономно" запущу, то фрейм закроет связь, это можно поймать и остановить все функции. После того, как фрейм отдельно перегрузить (через контекстное меню), можно поймать старт новой загрузки. Но от момента этого старта некоторое время страница продолжает отображаться в старом виде. Функцию запускать нужно уже на перезагруженной странице, отсюда надо поймать момент хотя бы начала перерисовки... сейчас у меня тупо стоит setTimeout, а хотца упростить... вот. )

Kolyaj 05.10.2009 22:51

Greasemonkey?

Zeroglif 05.10.2009 22:54

Kolyaj,

ну типа, или плагин )

Kolyaj 05.10.2009 22:58

Допустим gm: может скриптик написать, который только в этот самый фрейм будет грузится и делать там свои подлые дела? Тогда при перезагрузки фрейма скрипт тоже будет перезапускаться.

Zeroglif 05.10.2009 22:59

Kolyaj,

у фрейма нет события при перезагрузке

Kolyaj 05.10.2009 23:03

Так и пофик, если скрипт внутри фрейма будет работать, то не будет
Цитата:

Сообщение от Zeroglif
от момента этого старта некоторое время страница продолжает отображаться в старом виде.

И пусть он нужные события (кастомные) из фрейма шлет, тут unload и не нужен будет. Если я, конечно, все правильно понимаю.


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