Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка фреймов в определённом порядке, при помощи javascript 
:(
    Опции темы
vintyara
Дата 19.10.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 24.3.2005
Где: Ode$$a

Репутация: нет
Всего: 2



Хай алл !
Помогите с сабжом. Есть основная страничка:

Код

<html>
<body onLoad="top.engine.document.location">
<?php
session_start();
if (isset($_SESSION['login'])) {
    echo '
    <html>
    <frameset cols="80%,*"> 
    <frameset rows="80%,*"> 
    <frame NORESIZE FRAMEBORDER=1 name="chat" src="chat.php"> 
    <frame NORESIZE FRAMEBORDER=1 name="type_text" src="input.php"> 
    </frameset> 
    <frameset rows="60%,30%,*"> 
    <frame NORESIZE FRAMEBORDER=1 name="online" src="u_online.php"> 
    <frame NORESIZE FRAMEBORDER=1 name="smiles" src="d.htm"> 
    <frame NORESIZE FRAMEBORDER=1 name="engine" src="engine.php"> 
    </frameset> 
    </frameset> 
    </html>
    ';
}
else {
    echo 'Failed authorisation.';
}
?>


Мне нада чтобы фреймы загружались поочердёно. Самое главное для меня - псоледним загрузить фрейм chat.
Пытался я делать это при помощи JS - <body onLoad="top.engine.document.location">, в фрейме engine
у меня стоит <body onLoad="top.online.document.location"> и так по цепочке. Последним в этой цепочке ессесно стоит у меня
фрейм chat. Однако при загрузки странички появляется ошибка (firefox):

Ошибка: top.engine has no properties
Источник: http://213.130.6.103/chat2/main.php
Строка: 1

Что я делаю не правильно ?
PM MAIL ICQ   Вверх
vintyara
Дата 19.10.2006, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 24.3.2005
Где: Ode$$a

Репутация: нет
Всего: 2



неужели никто не знает ? smile
PM MAIL ICQ   Вверх
12345c
Дата 19.10.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Так, как описано - неправильно, потому что событие onload всегда в окне возникает одно, когда загрузится последний фрейм. Как накладываются события фреймов - не знаю, да и не важно, суть в том, что сработает какое-то одно из них. Поэтому надо устроить загрузчик - по onload главного документа (frameset onload) контролировать всё, загружая поочерёдно фреймы  по top.frames...document.location=...; , ожидая нового onload.
PM WWW   Вверх
AKS
Дата 19.10.2006, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



vintyara, повесьте на каждый фрейм функцию-обработчик события onload и пусть в них указывается путь к следующему фрейму. Таким образом получите определенную "очередь"...
PM MAIL   Вверх
vintyara
Дата 19.10.2006, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 24.3.2005
Где: Ode$$a

Репутация: нет
Всего: 2



AKS, а можно примерчик ? или зделать то же самое, что и я, но минуя обработку OnLoad на главной страничке ?
PM MAIL ICQ   Вверх
SelenIT
Дата 19.10.2006, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



vintyara,
во-первых, насколько мне известно, в одной странице не могут уживаться frameset и body - только что-то одно. Во-вторых, document.location по определению ничего не делает - это не функция. Чтобы это сработало, нужно присвоить нужный адрес св-ву location нужного фрейма.

Пример: основной файл - все фреймы, кроме первого, до поры до времени пусты, никакого onload.
Код

<html>
  <head><title>test</title></head>
  <frameset rows="100,*,200">
     <frame name="first" src="1st.html">
     <frame name="second">
     <frame name="third">
  </frameset>
</html>

1st.html:
Код

<html>
  <head><title>1st</title></head>
  <body onload="top.frames.second.location = '2nd.html'">Грузится первым.</body>
</html>

2nd.html:
Код

<html>
  <head><title>2nd</title></head>
  <body onload="top.frames.third.location = '3rd.html'">Грузится вторым.</body>
</html>

3rd.html:
Код

<html>
  <head><title>3rd</title></head>
  <body onload="alert('Готово!')">Грузится последним.</body>
</html>


Добавлено @ 22:38 
Вдогонку, в-третьих: приведенный в начале темы код должен вызвать ошибку PHP (она будет видна во view source страницы с фреймсетом). Как с ней бороться - см. здесь.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
vintyara
Дата 20.10.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 24.3.2005
Где: Ode$$a

Репутация: нет
Всего: 2



SelenIT, мега спасибо !!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.