Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Открытое ли окно?


Автор: Валерия 12.11.2008, 13:31
Через window.open в "родительской" странице открываю окошко с именем, допустим test
Теперь, если я еще раз захочу открыть окошко в родительской странице - это маленькое окошко перегрузиться, но новое не откроется - всё как и нужно.
Но вот только мне нужно, что бы если оно уже открыто, то что бы не перезагружалось.
НО проблема в том, что пользователь может вообще закрыть родительское окно, и потом открыть заново, и нужно что бы это продолжало работать...

Автор: ksnk 12.11.2008, 18:12
Валерия, Пусть это маленькое окошко установит какую-нибудь характерную куку. А по закрытии - ее прибьет. Для этого можно пользовать событие window.unload. С Оперой песня отдельная, но тоже, в принципе, решаемая.
Любой, кто измыслит открыть это маленькое окошко должен проверить наличие куки и, если есть, не открывать...

Автор: Валерия 12.11.2008, 18:17
Цитата(ksnk @  12.11.2008,  18:12 Найти цитируемый пост)
Валерия, Пусть это маленькое окошко установит какую-нибудь характерную куку. А по закрытии - ее прибьет. Для этого можно пользовать событие window.unload. С Оперой песня отдельная, но тоже, в принципе, решаемая.Любой, кто измыслит открыть это маленькое окошко должен проверить наличие куки и, если есть, не открывать..

Я задумывалась о подобном решении, но немного другом)
Что бы открытое окошко каждую секунду писало в куку текущее время.
И если главное окошко видит что в куке текущее время больше того времени что в куке не больше чем на 2 сек, тогда окошко не открывать)
Но я думала что по имени можно обратится к открытому, пусть и другим окном, окошку.

Автор: ksnk 12.11.2008, 18:21
Валерия, 
Цитата

Но я думала что по имени можно обратится к открытому, пусть и другим окном

Низяяя! Злые броузероисатели наставили препон и рогаток. Называют они это защитой smile 

Автор: Валерия 12.11.2008, 19:31
Кому интересно сделала так:
1.php
Код

<a href="javascript:void(0);" onclick="my_open();">Открыть</a>
<script>
function my_open(){
    var today = new Date();
    mytime = today.getTime();
    cooktime = getCookie("mytime");
    razn = mytime - cooktime;
    if (razn>500){
        window.open('2.php', 'myplayer',  'width=500, height=500');
    }
}
</script>


2.php
Код

<script>
function set_time(){
    var today = new Date();
    mytime = today.getTime();
    setCook("mytime", mytime);
}
setInterval("set_time()", 100);
</script>

Автор: Itsys 12.11.2008, 19:43
А не проще ли при открытии присвоить переменную
Код

wind = window.open(...)


а потом проверять наличие какого-либо объекта в этом окне через try...catch

Автор: Валерия 12.11.2008, 21:14
Цитата(Itsys @  12.11.2008,  19:43 Найти цитируемый пост)
а потом проверять наличие какого-либо объекта в этом окне через try...catch

а если юзер родительское окно обновил?

Автор: Itsys 13.11.2008, 07:28
Цитата(Валерия @  12.11.2008,  21:14 Найти цитируемый пост)
а если юзер родительское окно обновил? 

Тогда только через куки  smile

Добавлено через 59 секунд
Сори не до конца прочитал задание 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)