Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Как узнать открыто ли окно |
Автор: aazon 29.6.2006, 16:16 | ||
У меня есть дочернее окно, открытое скриптом, и есть фрейм в главном окне. Как фрейм должен обращаться к дочернему окну? Конкретно, нужно проверить, существует ли оно, если нет, то открыть такое же, еcли да - то ничего не делать. Открытие окна (из фрейма):
тоесть имя окна, как я понимаю, dwin. Теперь нужно сделать обращение из фрейма в это окно. KAK??? |
Автор: Aliance 30.6.2006, 01:22 | ||
По переменной:
Полезно почитать: http://forum.vingrad.ru/index.php?showtopic=44559 |
Автор: Sardar 30.6.2006, 11:00 |
Aliance, if не нужен, окно всегда будет открыто. aazon, открывай окна с именами, при повторном открытии существующее окно перезагрузиться. И наоборот, открывай окна _blank|_new если нужно при каждом open открывать новое окно. По теме: нет такой колекции. |
Автор: aazon 30.6.2006, 11:07 | ||
Мне нужна проверка на существование окна ДО открытия нового такого же. Ситуация такая: 1. Если дочернего окна нет, оно открывается и в него загружается, допустим, a.php 2. Далее пользователь в дочернем окне может нажать на кнопку, и в дочернее окно загрузится b.php. 3. И вот теперь скрипт из фрейма должен помотреть, открыто ли уже дочернее окно. Если нет - то открыть и загрузить в него a.php, а если да, то ничего не делать! Твое решение не удовлетворяет п.3, сначала НОВОЕ окно открывается (а если было открыто, то явно изменяется УРЛ), и только потом идет проверка. Мне же нужно проверку производить ДО открытия. Пробовал менять строки местами, но такой вариант не работает:
|
Автор: Sardar 2.7.2006, 03:26 |
Тогда никак. Задача специфичная, не думаю что кто либо сталкивался, но вполне возможно что через XPCOM в мозилле либо какой-нибудь фичей в ИЕ можно получить список окон. Вопрос остаёться открытым. |
Автор: Иль 19.7.2006, 17:31 |
Sardar, if обязательно нужен, иначе при блокировании всплывавющих окон (в ИЕ 6.0 проверено) dwin.focus() будет выкидывать исключение, тк dwin=null (про try умолчу) |
Автор: zoidberg 20.7.2006, 01:36 | ||||
А чем этот код не подходит?
|
Автор: Sardar 20.7.2006, 01:38 |
zoidberg, тем что это не проверка, а открытие окна. |
Автор: zoidberg 20.7.2006, 03:11 | ||||||||
Но в начале dwin = undefined! Т.е проверка есть... вот например скрипт откроет только 1 окно:
Я так и не понял, что хочет автор. Если пытается отловить нажатие на крестик (закрытие окна, то такого события нет. кросс-браузерно - однозначно нет). К чему все это?
А в какой ситуации его может не быть? Блокировка поп-апов? Тогда хоть голову разбей, но не открыть его.
Ну если у пользователя не блокируются окна, то проблемы тут не возникнут.
Ну так! Если dwin undefined, то пусть скрипт его откроет! Но если пользователь его закроет, то это событие отловить не удастся... или, например, можно спамить дочернее окно при потере фокуса. зы: а может мне пора спать уже т.к я не догоняю. ![]() |
Автор: Sardar 20.7.2006, 14:14 |
zoidberg, проблема в том что проверка на открытие окна нужна не в течении одного и того же сеанса, а между загрузками страницы. Открыл окно, перезагрузился, проверил есть ли оно ещё. Вообще плохое то решение, которому потребуеться знать открыто ли окно. И как уже сказал Иль, требуеться убедиться действительно ли открыто окно, т.к. оно может быть заблокированно. |
Автор: aazon 21.7.2006, 15:42 | ||
Окна точно не блокируются, на счет этого проблем нет
Согласен, но в некоторых ситуациях приходится вносить коррективы "на лету", и поэтому возникают такие ситуации |