Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите советом: как отследить открытие нового окна

Сообщения:  [1-10]   [11-11] 

 
 автор: kir   (16.02.2006 в 10:23)   письмо автору
 
   для: 12345   (12.02.2006 в 03:20)
 

Спасибо большое... копать и копать :)

   
 
 автор: 12345   (12.02.2006 в 03:20)   письмо автору
 
   для: Kir   (11.02.2006 в 16:21)
 

http://javascript.aho.ru/files/js-man.rar
http://xlibscripts.land.ru/jscript_doc/descrip1.html
http://wdh.suncloud.ru/refindex.htm

   
 
 автор: Kir   (11.02.2006 в 16:21)   письмо автору
 
   для: 12345   (11.02.2006 в 00:07)
 

Спасибо... на тему событий - очень познавательно - где бы найти ресурс (хотелось бы русскоязычный.. потому как пока с англицким траблы..) где все эти события, а не только стандартные описываються?

   
 
 автор: 12345   (11.02.2006 в 00:07)   письмо автору
 
   для: Kir   (10.02.2006 в 22:54)
 

Конечно, сессия тоже создаётся для одного пути, далее следует программистское решение иметь массивы данных для нескольких окон, например, в сессии.

Никаких хитростей для ie, просто событие onbeforeunload, после которого можно отменить закрытие (return false), и onunload, при котором можно подёргаться, но отменять бесполезно.

Правда, оболочки типа GreenBrowser игнорируют первое событие.

   
 
 автор: Kir   (10.02.2006 в 22:54)   письмо автору
 
   для: 12345   (10.02.2006 в 04:08)
 

Спасибо, я с куками вроде разобрался, только это все равно не решение.
Проблема в том, что даже если я вычислил, что открылось новое окно, в этой же сессии, я не могу ему поменять (сделать новую) сессию, потому что автоматом сессия меняеться в родительском окне - то есть ничего позитивного не происходит.
Вопрос.
Можно каким то хитрым методом обойти сообщение браузера "Окно пытаеться закрыться. Разрешить ему это?" при событии close() ?

   
 
 автор: 12345   (10.02.2006 в 04:08)   письмо автору
 
   для: Kir   (09.02.2006 в 23:01)
 

Все вопросы отпадут, если вы прочитаете главу любой (в т.ч. старой) книжки про JS, например, эту - http://docs.rinet.ru/SkripPauka/ch4.htm#WhatAreCookies (англ.). Кратко, сайты имеют свою группу куки различаются они заданным доменом и путём (path). Если страницы имеют тот же домен и путь (или одинаковы), то document.cookie обратится к одному cookie. Пользуйтесь им как хешем (см. ядро языка), соблюдая сохранность ключевых значений. Таким способом можно будет общаться между копиями страниц.

   
 
 автор: Kir   (09.02.2006 в 23:01)   письмо автору
 
   для: 12345   (09.02.2006 в 22:36)
 

Спасибо...
На тему кук, которые постоянно можно обновлять...

>Но вот в куки можно попытаться записать признак - "одно окно открыто", с коротким времененм жизни (5-10 c), и постоянно обновлять. Тогда второе окно обнаружит, что есть открытые окна.

Объясните плз:
если добавлять куки (пользоваться стандартной функцией setcookie() в PHP), то каждое окно пользуеться своим набором? То есть при открытии нового окна на машине пользователя появляестья новый набора куков? Или нет? Это самое новое окно просто переопределяет старые?

   
 
 автор: 12345   (09.02.2006 в 22:36)   письмо автору
 
   для: kir   (09.02.2006 в 19:51)
 

Это вопрос связан с предыдущим? Тогда его не так надо решать. .Надо определить наличие более 1 окна. Протокол обязан различать разные окна, но с точки зрения сессии они неразличимы (хост один - куки одни и те же - SID то же. Как различать запросы с одного компьютера - спросите на форуме PHP. Но вот в куки можно попытаться записать признак - "одно окно открыто", с коротким времененм жизни (5-10 c), и постоянно обновлять. Тогда второе окно обнаружит, что есть открытые окна. Есть подпольный метод (ie) - передать что-то через клипборд, если не жалко данных пользователя в нём : )

   
 
 автор: kir   (09.02.2006 в 19:51)   письмо автору
 
   для: 12345   (08.02.2006 в 00:37)
 

Спасибо…
А такой вопрос, можно ли с помощью PHP массивов (например через $_SERVER) или через куки определить что несколько окон браузера пользуются одной сессией?
Описываю проблему: существует какая то страница, которая для передачи определенной информации активно использует массив $_SESSION. Если такое окно открыть в новом окне, вышеперечисленными методами, то это новое окно тоже будет пользоваться этой же сессией, и в итоге, если пользователь прыгает из окна в окно, получается полная ерунда.
Возможно вопрос совершенно дурацкий, маловато опыта.

   
 
 автор: 12345   (08.02.2006 в 00:37)   письмо автору
 
   для: Kir   (07.02.2006 в 21:55)
 

>нажимает Ctrl+n или меню/файл/создать/окно,
---
никак или с помощью специально написанного Windows-приложения, взаимодействующего с браузером через ActiveX сontrol.

или жмет на
>ссылку с Ctrl,
---onclick +проверка нажатости клавиши

или с помощью контекстного меню – Открыть в
>новом окне. Есть какой то метод?
---onclick+проверка нажатости клавиши мыши - IE, FF; oncontextmenu - IE - но нельзя определить, что именно в меню будет выбрано. Решение - снова с помощью ActiveX (Windows только)

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования