|
|
|
| Доброго времени суток.
Подскажите как отследить открыто ли дочернее окно?
Имеется несколько страниц сайта.
На каждой из них прописана функция открытия дочернего окна. НО, открыть его нужно всего один раз. То есть зашел юзер на главную страницу - открылось дочернее окно с именем *новое окно*. Перешел юзер на другую страницу в пределах сайта - дочернее окно остается открытым и не перезагружается. Если же юзер начал просмотр сайта с другой страницы (не с главной), то опять таки открывается дочернее окно и при последующих прогулках юзера по сайту не открывается еще одна копия дочернего окна и уже открытое не перезагружается. Как это реализовать? | |
|
|
|
|
|
|
|
для: c-quence
(12.04.2010 в 22:49)
| | Первое, что приходит на ум - использовать куки. Открывается у вас дочернее окно, оно ставит куку (не важно, джаваскриптом или сервером). Родитель, естественно, куку тоже сможет проверять. А по событию закрывания окна кука удаляется или ей задается какое-то значение, говорящее, что окно закрыто.
А зачем вам такая сложная структура? Если нужно хранить какие-то данные пользователя, используйте те же куки или сессии, эти механизмы специально созданы для таких целей. | |
|
|
|
|
|
|
|
для: c-quence
(12.04.2010 в 22:49)
| | В методе window.open второй аргумент - это как раз уникальное имя открываемого окна.
Если окно с таковым именем уже открыто, то новый URL будет загружаться в это (открытое) окно.
Если юзер его закроет (и оно перестанет существовать), то откроется новое.
Таким образом, на каждой из страниц сайта пропишите одинаковое имя в методе window.open.
Но, разумеется, не стандартное типа _blank. Надо, например, - myWin123
Аналогично будет работать эта система при использовании атрибута target внутри ссылок. Напишете одно и то же имя для target - все ссылки будут грузиться в одно и то же открытое окно. | |
|
|
|