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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перезагрузить окно 
V
    Опции темы
MoLeX
  Дата 6.6.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



в догонку к теме

есть родительское окно (http://site/index.php) в нем есть ссылка открывающая новое окно (http://site/info.php) с задаными параметрами (высота, ширина...), после закрытия этого окна необходимо перезагрузить родительское окно (произошло изменение данных, и пользователю не очень удобно).
первое что пришло в голову - это рефрешь по тайму, но это дикость. 
как лучше сделать?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
bars80080
Дата 6.6.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



однако, если уж возникает такая ситуация, как обязательная перезагрузка родительского окна по закрытию дочернего, возникает вопрос: а смысл в этом дополнительном окне? почему бы его не симулировать в родительском на всплывающем слое?

если предусматривается закрытие по нажатию на кнопку (к примеру: "сохранить данные"), то почему бы не прописать в функцию отсылки формы и закрытия окна что-то вроде opener.refrash() ?
PM MAIL WWW   Вверх
MoLeX
Дата 6.6.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Цитата(bars80080 @  6.6.2008,  11:26 Найти цитируемый пост)
если предусматривается закрытие по нажатию на кнопку (к примеру: "сохранить данные"), то почему бы не прописать в функцию отсылки формы и закрытия окна что-то вроде opener.refrash() ? 

можно сделать и после сохранения данных закрытия окна, а насчет рефреша поподробнее
 smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
bars80080
Дата 6.6.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(MoLeX @  6.6.2008,  11:33 Найти цитируемый пост)
можно сделать и после сохранения данных закрытия окна
 витиеватость этой фразы малость не догнал


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

т.е. нажимаем кнопку, запускает финальная функция:
Код

function send() {
// допустим отправка формы
document.getElementById('main_form').submit();
// обновление родительской страницы
// однако, мы не уверены, что данные успели уйти, поэтому запустим через таймаут
// хотя если бы можно было выяснить отправились ли данные (скажем приравняв какую-то переменную к res = document.getElementById('main_form').submit();), то узнали бы через неё
// а так таймаут
setTimeout('finalf()', 500);
}
function finalf() {
opener.window.reload(); // или как-то подругому
// закрытие этого окна
self.close();
}
 для того чтобы точно узнать произошло ли обновление данных, как альтернатива ajax
PM MAIL WWW   Вверх
Ghirik
Дата 7.6.2008, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так, давайте разберемся.
Изменение данных происходит только после отправки формы из дочернего окна?
Или, если даже пользователь не отправлял форму из досернего окна, после его закрытия нужно перезагружать родительскую страницу?

Добавлено через 1 минуту и 1 секунду
Т.е., В любом случае, после закрытия перезагружать родителя?


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
MoLeX
Дата 7.6.2008, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Цитата(Ghirik @  7.6.2008,  10:07 Найти цитируемый пост)
Т.е., В любом случае, после закрытия перезагружать родителя? 

да правильно понял, в любом случае перезагрузить родителя нужно.


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Fortop
Дата 7.6.2008, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Цитата(MoLeX @  7.6.2008,  10:14 Найти цитируемый пост)
да правильно понял, в любом случае перезагрузить родителя нужно. 


Тогда почему бы не сделать, как предлагалось?

Цитата(bars80080 @  6.6.2008,  11:26 Найти цитируемый пост)
однако, если уж возникает такая ситуация, как обязательная перезагрузка родительского окна по закрытию дочернего, возникает вопрос: а смысл в этом дополнительном окне? почему бы его не симулировать в родительском на всплывающем слое?





--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Ghirik
Дата 7.6.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Тогда почему бы не сделать, как предлагалось?


Наверное, уже всё есть и работает. Задача отследить событие закрытия окна значительно проще, чем "предлагалось".

Вот первое, что пришло в голову.

Код

<!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=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Title block</title>
<script type="text/javascript">
<!--

var win;

function asd() {
    if (typeof win.document == 'object') {
        return;
    }
    else {
        document.location = document.location.href + '#12';
        window.clearInterval(interval);
    }
}

function qwe() {
    win = window.open('qwe.htm');
    interval = window.setInterval(asd, 1000)
}



//-->
</script>
</head>
<body>

<p><input type="button" value="Кнопка" onclick="qwe()"></p>

</body>
</html>


Но в FF не работает, там чего то нужно по другому... smile 

Вообще, проблема не в процедуре перезагрузки, а в борьбе с кэшированием браузером. Потому, каждую новую перезагрузку нужно делать с новым GET запросом или меткой.



Это сообщение отредактировал(а) Ghirik - 7.6.2008, 11:18


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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