Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Dj Fly от 05 Февраля 2002, 17:35:44

Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 05 Февраля 2002, 17:35:44
Народ, как сделать так, чтобы при нажатии кнопки во фреймсете (верхний большой и нижний узкий фреймы) в нижнем фрейме происходило обновление верхнего фрейма (помимо того, что кнопка эта - форма с передачей переменных в свой же нижний фрейм)

Короче, по сути - это мелкий служебный чат, в котором надо сделать так, чтобы окно со всеми мессагами обновлялось как только юзверь постит мессагу в нижнем фрейме...
Название: Обновление фреймов из другого фрейма
Отправлено: Pr0Head от 05 Февраля 2002, 18:48:23
Допустим верхний фрэйм называется top, а нижний down, тогда на кнопку сабмит вешаем onClick (или даже правильней повесить событие на onSubmit):



или на форме onSubmit

Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 05 Февраля 2002, 18:58:06
Верхний фрейм называется main
Нижний  -  bottom

В верхнем фрейме - загружен main.php
В нижнем фрейме - post.php - и в нём та самая форма

Нужно обновить верхний main.php

Я пишу так:

Не канает, что не так? Подозреваю что с location траблы... В JavaScript - я нолик с хвостиком... :-(
Название: Обновление фреймов из другого фрейма
Отправлено: Pr0Head от 05 Февраля 2002, 19:12:22
Странно, должно работать...

Сейчас я примерчик набросаю и доложу о результатах... :)
Название: Так попробуй
Отправлено: Макс от 05 Февраля 2002, 21:14:27
onSubmit="window.main.location.reload()">
Название: Обновление фреймов из другого фрейма
Отправлено: Pr0Head от 05 Февраля 2002, 21:44:03
Вот что обнаружилось.

Если чат делать с записью в файл, то получается, что чтение из файла (обновление верхнего фрэйма) накладывается по времени на запись в этот файл, то получается чистый файл без какие-либо записей.

Поэтому как вариант, можно повестить обновление верхнего фрэйма на onLoad.


Ну, а если чат не с записью в файл, то все правильно, должно работать и в моем и в Максовом варианте.
Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 05 Февраля 2002, 21:48:35
И это не канает
Вот код:


Мессага:



Я уже думал, что название фрейма main совпадает с чем-то в js... переимеонвал фрейм в chattext
Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 05 Февраля 2002, 21:52:55
Чат пишет в MySQL...
И не пашет... :-(
Название: Обновление фреймов из другого фрейма
Отправлено: Oak от 05 Февраля 2002, 21:54:11
window.frames.chattext.document.location.reload(true)

это если быть совсем параноиком ;)

--------------------------------
reload([forceGet])
   If you supply true, forces an unconditional HTTP GET of the document
   from the server. This should not be used unless you have reason to
   believe that disk and memory caches are off or broken, or the server
   has a new version of the document (for example, if it is generated
   by a CGI on each request).
Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 05 Февраля 2002, 22:02:15
Вот адрес этого дер..ма
http://www.freetime.md/temp/chat

Гляньте плиз... Может я глючу?
Название: Обновление фреймов из другого фрейма
Отправлено: Oak от 06 Февраля 2002, 01:57:19
Цитировать

JavaScript Error: http://www.freetime.md/temp/chat/post.php,
line 1:

window.frames.chattext has no properties.


Аааааааааааа........... тормоз я !!!!!!!!

надо parent.frames.chattext.document.location.reload(true)

:)
Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 06 Февраля 2002, 09:14:11
ВО!!!!!!
Теперь пашет.
Супер...
Спасибо, Oak...

А насчёт безопасности - это же служебный чат, а хотя сегодня сделаю там авторизацию и юзверьную систему...

Блин, как бы сделать так, чтобы оно рефрешилось и курсор оставался в нижнем фрейме в поле сообщения...
Ещё, я когда сделал там автоматический рефреш каждые 20 секунд - окно чата (IE) постоянно мерцало, если было свёрнуто... Как бы и и это убрать, тогда будет всё запишись...
Название: Обновление фреймов из другого фрейма
Отправлено: Oak от 06 Февраля 2002, 20:32:15
Ну для этого надо совсем технологию менять :))) Смотри как на http://fantastic.death.kiev.ua сделано (собственно почти все так сделаны chat-ы на сегодняшний день
Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 07 Февраля 2002, 10:01:47
Блин, там же в сорсе - немеряно других функций, где там часть, которая отвечает за тихий рефреш окна с чаттекстом и возвращает курсор в нижний фрейм...:?
Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 07 Февраля 2002, 12:47:11
Всё сделал, вроде всё ок, главное окно чата рефрешится каждые 5 секунд, при этом возвращая курсор в нижний фрейм в поле сообщения, всё класно, чат не тормозит, и только одно НО...
Он смертельно задалбывает тем, что если его свернуть - постоянно мигает и обращает на себя внимание...

Как убрать?
Название: Обновление фреймов из другого фрейма
Отправлено: Oak от 07 Февраля 2002, 18:35:28
А ты на JavaScript  проверяй - window.onfocus, window.onblur - чтобы оно смотрело - активное оно или нет и не дергалось , если не актовное
Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 08 Февраля 2002, 01:22:21
А примерчик мелкий? А то я чего-то не доезжаю...

В принципе, может это у меня как-то получилось случайно, но по-моему, проблема исчезла, но хотелось бы понять - как этим управлять сознательно...

А вообще - гляньте www.freetime.md/temp/chat - как оно сейчас?
Название: Обновление фреймов из другого фрейма
Отправлено: Oak от 08 Февраля 2002, 20:01:47
примерчика нет, поскольку такое не делал :)

Если на Logout кликнуть:
Warning:  Unable to jump to row 0 on MySQL result index 2 in /usr/local/www/data/freetime/temp/chat/logout.php on line 12


А если после регистрации на chat зайти сразу , то
"Вы не авторизованы, зайдите сюда."

:(   Жму - оно новое окно открыло

А смысл на e-mail слать пароль, если оно меня и так пускает?
Название: Обновление фреймов из другого фрейма
Отправлено: Dj Fly от 08 Февраля 2002, 23:17:13
Был глюк с warning-ом, я его исправил буквально в течение пары минут (отрывали постоянно на работе), видно ты попал в него :-)
А мыло в регистрации - чтобы один раз прислать пароль - для забывчивых, а пароли шифруются, так что даже я их не выковыряю...
А пускает после регистрации - это в первый раз - автоматически, там своя авторизация... Потом логиниться придётся  :-) ... И проверяет активность каждые 30 секунд - хоть окно чата и рефрешится каждые 3-5...

В общем, ты попал как раз на горяченькое :-) просто я всё сразу - на сервак, благо- в метре от меня, так что удобно :-)...

Сейчас - вроде всё оки, остаётся только команд понаделать, их сейчас около 6 штук - для админа и 2 для всех...