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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> reload frame onUnload pop-up, обновление фрэйма после закрытия pop-up 
:(
    Опции темы
Bolt
Дата 24.11.2005, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток!
подскажите как бы мне и «рыбку съесть и ... косточкой не подавиться»
имеем два фрейма 0 - query, 1 - response
хочется обновить левый фрэйм, после закрытия всплывающего окна, вызванного из правого фрэйма:
заполняем некую форму во фрейме 1.
по сабмиту этой формы js открывает поп-ап в которое perl-скрипт печатает:
Код

<BODY onLoad="cll($t);" onUnload="window.frames.query.document.location.replace("left.cgi");">
<script type="text/javascript">function cll(){ self.setTimeout("self.close()",1000*$t); }</script>
<table width="100%" height="100%" align="center">
<tr align=center><td> <img src="$html->{'suc_img'}" hspace="4" /> </td><td width="100%"><b>DATA $word</b></td></tr>
</table>

при закрытии окна никак я не могу заставить обновиться левый (0-query/left.cgi) фрэйм.
история "потуг" такова:
вместо:
Код
onUnload="window.frames.query.document.location.replace("left.cgi");"

варианты:
Код
window.frames["query"].document.location = "left.cgi";

Код
window.frames["query"].document.location.href = "left.cgi";


увы. окно закрывается и левый фрэйм остается прежним
мой js далёк от совершенства. )
PM WWW ICQ   Вверх
Ciber SLasH
Дата 25.11.2005, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Откуда взял событие UnLoadOff ? случайно не из страницы, которую обработал Proxomitron ?
Вообще есть событие onUnload, которое по умолчание выключается Proxomitron'ом. Он просто переписывает это событие на несуществующее и поэтому оно не выполняется.

Так, что прежде, чем смотреть код чужой страницы — отключи Прокс. smile
PM   Вверх
Bolt
Дата 26.11.2005, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



какой-то бред сумасшедшей фантазии... ммм-да.
Цитата(Ciber @ 25.11.2005, 21:29)
Откуда взял событие UnLoadOff ?

и действительно.... откуда? Ciber SLasH, откуда это?
прежде чем писать ахинею - посмотри вопрос.

по делу никто ничего не напишет?



PM WWW ICQ   Вверх
Ciber SLasH
Дата 26.11.2005, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Bolt)
прежде чем писать ахинею - посмотри вопрос.

Во-первых я посмотрел вопрос.
Во-вторых — дал на него ответ: вместо твоего UnLoadOff напиши onUnload.
В-третьих — это тебе нужно внимательнее читать ответ, который даётся.
В-четвёртых — если не веришь, то я тебе могу показать фильтр Proxomitron'а, который переписывает событие onUnload на UnLoadOff. Что в итоге даёт неработоспособное событие, как у тебя.
PM   Вверх
Bolt
Дата 26.11.2005, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



гм...
Цитата(Ciber @ 26.11.2005, 15:01)
вместо твоего UnLoadOff

покажи. ГДЕ ТЫ ЕГО УВИДЕЛ???
название темы, созданного мной:
reload frame onUnload pop-up
цитировать весь вопрос или ты все же его просто перечитаешь?
скажу тебе по секрету: впервые услышал о существовании некоего UnLoadOff.
где ты там его увидел, свой UnLoadOff в моем посте - загадка.
Цитата(Ciber @ 26.11.2005, 15:01)
это тебе нужно внимательнее читать ответ, который даётся.

это вот этот?
Цитата(Ciber @ 25.11.2005, 21:29)
Так, что прежде, чем смотреть код чужой страницы — отключи Прокс

это скорее тянет на критерий самооценки но никоим образом не можно рассматривать в качестве ответа на вопрос:
Цитата(Bolt @ 24.11.2005, 20:06)
как обновить левый фрэйм, после закрытия всплывающего окна, вызванного из правого фрэйма

и, раз уж мы пошли путем раскрытия тайн, несколько строчек тривиального кода (цитирую на всякий случай из своего первого поста) я написал сам:
Код
<BODY onLoad="cll($t);" onUnload="window.frames.query.document.location.replace("left.cgi");">
<script type="text/javascript">function cll(){ self.setTimeout("self.close()",1000*$t); }</script>
<table width="100%" height="100%" align="center">
<tr align=center><td> <img src="$html->{'suc_img'}" hspace="4" /> </td><td width="100%"><b>DATA $word</b></td></tr>
</table>


PM WWW ICQ   Вверх
Ciber SLasH
Дата 26.11.2005, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



2Bolt:
Цитата
покажи. ГДЕ ТЫ ЕГО УВИДЕЛ???

В твоём первом посту в первой строке в тэге BODY после собятия onLoad у тебя идёт несуществующее событие, о котором я тебе пытаюсь сказать, — UnLoadOff.
Цитата
reload frame onUnload pop-up
цитировать весь вопрос или ты все же его просто перечитаешь?

Я прекрасно понял вопрос — как я понял ты хочешь перезагрузить левый фрейм после закрытия всплывающего окна, которое открывает правый фрейм. Для этого ты вписываешь в тэг BODY следующую конструкцию:
Цитата
<BODY onLoad="cll($t);" UnLoadOff="window.frames.query.document.location.replace("left.cgi");">

т.е. по твоему по событию UnLoadOff должно происходить "window.frames.query.document.location.replace("left.cgi");" ?
Так ты считаешь ? Так вот: или я слепой или... но события UnLoadOff — не существует, его просто нет ни в одной спецификации, следовательно оно никогда не выполнится !!
Цитата
это вот этот?
Цитата(Ciber)

Так, что прежде, чем смотреть код чужой страницы — отключи Прокс


это скорее тянет на критерий самооценки но никоим образом не можно рассматривать в качестве ответа на вопрос:

Нет, я тебе дал ответ:
Цитата
Вообще есть событие onUnload, которое по умолчание выключается Proxomitron'ом.

Где ключевым словом было onUnload — вот по этому событию и происходят действия после закрытия страницы.


А теперь по делу:
По идеи событие onUnload должно происходить после закрытия страницы, но почему-то оно не хочет срабатывать во всплывающем окне.
Поэкспериментировав, я пришёл к выводу, что лучше в твоём случае просто перед закрытием окна методом self.close() выполнять необходимые тебе действия.
Кстати событие onLoad тоже не срабатывает, если во всплывающее окно записывать контент методом document.write(). Как я понимаю оно не срабатывает, потому что окно уже открыто и только после открытия в него записывается контент — поэтому в твоем случае действия по onLoad лучше перенести в тэг SCRIPT после тэга BODY.

Вот что у меня получилось:
main.htm
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta name="Generator" content='EditPlus 2.20.211'>
<meta name="Author" content='Ciber SLasH'>
<title>JavaScript :: Работа с фреймами</title>
</head>

<frameset cols="250,*">
    <frame name="query" src='1.htm'>
    <frame name="response" src='2.htm'>
</frameset>
</html>

1.htm
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta name="Generator" content='EditPlus 2.20.211'>
<meta name="Author" content='Ciber SLasH'>
<title>Frame["query"]</title>
</head>

<body>
1.htm
</body>
</html>

2.htm
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta name="Generator" content='EditPlus 2.20.211'>
<meta name="Author" content='Ciber SLasH'>
<title>Frame["query"]</title>
<script type='text/javascript'>
function doSubmit() {
var wnd = window.open('', '', 'resizable');
wnd.document.write(
    '<script type="text/javascript">'+
    'function doUnLoad() {'+
    '    opener.window.top.frames.query.location.replace("3.htm");'+
    '    self.close();'+
    '}'+
    'function cll(t) {'+
    '    self.setTimeout(doUnLoad, 1000*t);'+
    '}'+
    '<\/script>'+
    '<BODY>'+
    '<script type="text/javascript">cll(2)<\/script>'+
    '<table width="100%" height="100%" align="center">'+
    '<tr align=center><td><img src="ButtonActive.png" hspace="4" /></td><td width="100%"><b>DATA $word</b></td></tr>'+
    '</table>'
);
}
</script>
</head>

<body>
<form onSubmit='doSubmit()'>
<input type="submit" value="submit">
</form>
</body>
</html>

3.htm
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta name="Generator" content='EditPlus 2.20.211'>
<meta name="Author" content='Ciber SLasH'>
<title>Frame["query"].replace()</title>
</head>

<body>
<span style='color: red'>3.htm</span>
</body>
</html>

Такой эффект тебе нужен был?

Это сообщение отредактировал(а) Ciber SLasH - 26.11.2005, 21:26
PM   Вверх
Bolt
Дата 28.11.2005, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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