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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Полная загрузка IFRAME, Как дождаться полной загрузки IFRAME? 
V
    Опции темы
Grin
Дата 16.6.2006, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть страничка в которую встроен IFRAME
Код

<iframe id="mymap" name="mymap" src="http://test.ru/home.html"></iframe>

после чего идёт JS скрипт который должен обратиться к фрейму и взять какуюто информацию, но т.к. фрейм очень большой то скрипт срабатывает в холостую.
Как можно сделать задержку на загрузку, а лучше дождаться полной загрузки фрейма? smile  
PM MAIL WWW ICQ   Вверх
Grin
  Дата 17.6.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну и где же добрые модераторы этого раздела?  smile 
Мне конибуть поможет, или на крайний случай совет даст  smile  
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 17.6.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 8
Всего: 71



Код

<iframe id="mymap" name="mymap" src="http://test.ru/home.html" onload="my_func()"></iframe>
 
PM MAIL   Вверх
Grin
Дата 17.6.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



S.A.P.
У меня немного сложнее ситуация
Код

<iframe id="mymap" name="mymap" src="http://test.ru/home.html"></iframe>

<script type="text/javascript">
<!--
function ONLINE(name) {
var USER_online = frames.mymap.document.getElementById('user_on').innerText;
// обработка
}
//-->
</script>

<br />
<br />
<script>
ONLINE("123");
</script>
<br />
<br />
<script>
ONLINE("987");
</script>
 
PM MAIL WWW ICQ   Вверх
Sardar
Дата 17.6.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Grin, лови onload в документе что в ифрейм подгружен, кидай событие (вызови функцию) своему parent'у. Ещё лучше если задачу (по смыслу, а не как ты видишь кодом) выложишь, чую кривое что то получаеться. 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Grin
Дата 17.6.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2 Sardar,
Вообщем моя задача сделать Online/Offline для IBP 1.3 (доступа к PHP нет, только шаблоны)
извините что без коментариев

index.html
Код

<html>
<body> 

<iframe id="mymap" name="mymap" src="http://test.ru/home.html"></iframe>

<script type="text/javascript">
<!--
function ONLINE(name) {
if (name == "{ibf.member.name}"){                          
document.write('<img src="http://test.ru/ON.gif" border="0" />');
} else {
var USER_online = frames.mymap.document.getElementById('user_on').innerText;
USER_online = USER_online.replace(name,"[ИМЯ]");
IMYA = USER_online.indexOf("[ИМЯ]");
USER_online = USER_online.substring(IMYA,IMYA + 5);
if (USER_online == "[ИМЯ]") {
document.write('<img src="http://test.ru/ON.gif" border="0" />');         
} else { 
document.write('<img src="http://test.ru/OFF.gif" border="0" />');

}
}
//-->
</script>

<br />
<br />
<script>
ONLINE("Вася");
</script>
<br />
<br />
<script>
ONLINE("LOL");
</script>
<br />
<br />
<script>
ONLINE("KOK");
</script>
<br />
<br />
<script>
ONLINE("LOL");
</script>
<br />
<br />
<script>
ONLINE("LOL");
</script>
<br />
<br />
<script>
ONLINE("MOM");
</script>
<br />
<br />
<script>
ONLINE("1qaz");
</script>
<br />
<br />
<script>
ONLINE("LOL");
</script>


home.html
Код

<html>
<body>
<div id="user_on"><a href=''><b><span style='color:red'>LOL</b></span></a>

<a href=''><span style='color:orange'>Capriz</span></a></div>
</body>
</html>
 
PM MAIL WWW ICQ   Вверх
Sardar
Дата 18.6.2006, 03:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Grin, какой же это чудовищный изврат smile

Проще всего конечно XMLHttpRequest'ом дёргать статус каждо пользователя, но раз доступа к форуму нет... то можно сделать криво но просто, просто не выводить инфу о пользователе пока не загрузиться ифрейм. Как только загрузилось, тут же из ифрейма вызываешь апдейт основного документа выставляя инфу о статусе. Про onload говорили выше, либо на ифрейм, либо в home.htm на body.

Все: 
Код
<script>
ONLINE("Вася");
</script>


Заменяй на что нибудь удобней для выборки, например <div user="имя юзера"></div>. После когда из ифрейма список имён и их статусов известен пробегаешся по document.documentElement.getElementsByTagName("div"), выфильтровываешь всех кто имеет аттрибут user, достаёшь инфу у юзере и ставишь соответстующую картинку в полученный div.

Извратно конечно, но по моему лучшее когда всё надо на клиенте порешать.
 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Grin
Дата 18.6.2006, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2 Sardar
Интересный вариант надо попробовать.  smile  

Это сообщение отредактировал(а) Grin - 18.6.2006, 11:57
PM MAIL WWW ICQ   Вверх
Grin
Дата 18.6.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2 Sardar
Цитата(Sardar @  18.6.2006,  04:12 Найти цитируемый пост)
После когда из ифрейма список имён и их статусов известен пробегаешся по document.documentElement.getElementsByTagName("div"), выфильтровываешь всех кто имеет аттрибут user,

А как зделать эту отфильтровку?
 
PM MAIL WWW ICQ   Вверх
Sardar
Дата 18.6.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Простейший пример:

Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
    <title>Untitled</title>
</head>

<body>
<script type="text/javascript">
<!--
function dataLoaded(data) {
  var d=document.getElementById("test").getElementsByTagName("span");
  for(var i=0; i < d.length; i++) {
     //собстно здесь и фильтрируем
     if(!d[i].getAttribute("mymarker") || !data["~"+d[i].getAttribute("mymarker")]) continue;
     d[i].innerHTML = data["~"+d[i].getAttribute("mymarker")];
  } 
}
//-->
</script>
<div id="test">
 <span mymarker="pre">Думали, что</span> мы <span style="font-weight: bold;">хавали</span> <span mymarker="what">апельсины и яблоки</span>...
</div>
<button onclick="dataLoaded({'~pre':'Анализы показали,', '~what':'какую то лабуду'});">Test</button>

</body>
</html>


Твой ифрейм по аналогии вызывает dataLoaded и передаёт всю инфу.  Этого же эффекта можно добиться не вводя свой аттрибут наподобие mymarker, например через коментарии, но с аттрибутами элегантней. Валидатор будет ругаться, пропиши в доктайпе свой аттрибут для требуемых элементов, он должен успокоиться. 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Grin
Дата 21.6.2006, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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