Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как отследить закрытие popup-окошка??? / 15 сообщений из 15, страница 1 из 1
14.11.2007, 17:29
    #34939672
Impish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Есть главная страница сайта, на ней есть линк в виде картинки, на событии onclik которого открывается popup окошко, в котором отображается страничка левого сайта. Когда эта самая страничка открыта, нужно менять картинку (статус картинки - open) на главной странице, которая вызывает это самое popup окно, когда popup окошко закрывается, картинку на главном сайте снова нужно менять (статус картинки - close). Внимание вопрос: Как отследить событие закрытия popup-окошка, в котором отображается страничка левого сайта???
...
Рейтинг: 0 / 0
14.11.2007, 17:55
    #34939781
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
В "левом" окошке
Код: plaintext
<body onbeforeunload='your_function();'>
а в функции обращаешься к элементам родительского окна.
(если надо как, то недавно такая тема пробегала тут)
...
Рейтинг: 0 / 0
14.11.2007, 18:18
    #34939881
Impish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
У меня нету body левого окошка. В этом-то вся и проблема. В окошке страничка левого сайта, у меня нет к ней доступа, я не могу в ней код менять.
А вызываю я её так: onclick="javascript:window.open('http://.....');"
...
Рейтинг: 0 / 0
14.11.2007, 22:25
    #34940343
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Таймером проверять состояние окна, пока не вернется ошибка, отличная от access denied?
...
Рейтинг: 0 / 0
15.11.2007, 14:37
    #34942224
Impish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Каким таймером? Откуда что проверять? Можно, поподробнее?
...
Рейтинг: 0 / 0
15.11.2007, 16:03
    #34942579
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Каким таймером?setTimeout
Откуда что проверять?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
var wnd, timer;

function CreateWindow(){
wnd=window.open('http://.....');
timer = setTimeout("checkWindow()",  1000 );
}

function checkWindow(){
var doc, err;
    try{
        doc = wnd.document;
    }catch(err){
        /*
        здесь проверить код ошибки
        если access denied, то timer = setTimeout("checkWindow()", 1000);
        если что-то друго, типа object required, то окно закрыто
        */ 
    }
}

onclick="javascript:CreateWindow();"
За буквальную точность не ручаюсь - это примерная схема.
...
Рейтинг: 0 / 0
15.11.2007, 16:45
    #34942770
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Есть еще один очень заманчивый вариант.
При открытии окна мы имеем ссылку на него и, хотя мы не можем переназначить ему события, мы можем выполнять его методы.

Допустим, есть ссылка - вызываем свою функцию, где открываем новое окно, в которое помещаем требуемый контекст:
Код: plaintext
var newwin = window.open("{your link}", "newwin", "");
Теперь мы можем обратиться к методам нового окна, в том числе и execScript:
Код: plaintext
newwin.execScript("this.onbeforeunload = function() {alert('closing ...');};", "javascript");
Как ни странно, но такая конструкция работает. Так как у нас есть дескриптор окна-родителя, то можно что-то на нем менять (вместо алерта), например:
Код: plaintext
this.opener.document.getElementById('{id of your image}').src = '{path and name of image}';
...
Рейтинг: 0 / 0
15.11.2007, 16:47
    #34942781
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
А, да ... лучше всего использовать именно событие onbeforeunload, так как при onunload мы потеряем дескриптор окна (скорей всего, он станет null).
P.S. onclose у window нет
...
Рейтинг: 0 / 0
15.11.2007, 17:44
    #34942967
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
В окне чужой сайт, и если я не ошибаюсь, то как и с чужим сайтом во фрейме, будет облом при newwin.execScript в виде acess denied.
...
Рейтинг: 0 / 0
15.11.2007, 17:49
    #34942985
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Я попробовал - получилось ...
...
Рейтинг: 0 / 0
15.11.2007, 18:53
    #34943134
Impish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Пробую следующий вариант:

function OpenWin() {
var chwin = window.open("http://....", "chwin", "");
chwin.execScript("this.onbeforeunload = function() {alert('closing ...');};", "javascript");

}

Возникает ошибка: Access is denied.

Подскажите плз., что я не так делаю:(
...
Рейтинг: 0 / 0
15.11.2007, 19:29
    #34943203
Impish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Попробовала первый вариант:
var wnd, timer;

function CreateWindow(){
wnd=window.open('http://.....');
timer = setTimeout("checkWindow()", 1000);
}

function checkWindow(){
var doc, err;
try{
doc = wnd.document;
}catch(err){
/*
здесь проверить код ошибки
если access denied, то timer = setTimeout("checkWindow()", 1000);
если что-то друго, типа object required, то окно закрыто
*/
}
}

Проблема оказалась в том, что открыто окно или закрыто, код ошибки одинаковый:(.
Может будут ещё какие-то идеи? :)
...
Рейтинг: 0 / 0
15.11.2007, 19:53
    #34943239
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Все оказалось гораздо проще )
Код: plaintext
1.
2.
3.
function checkWindow(){
    alert(wnd.closed);
    timer = setTimeout("checkWindow()",  1000 );
}
...
Рейтинг: 0 / 0
16.11.2007, 13:39
    #34944903
Impish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
Разобралась! Работает! Всем большое спасибо!
...
Рейтинг: 0 / 0
20.01.2008, 14:30
    #35074053
ella08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить закрытие popup-окошка???
авторЕсть главная страница сайта, на ней есть линк в виде картинки, на событии onclik которого открывается popup окошко, в котором отображается страничка левого сайта. Когда эта самая страничка открыта, нужно менять картинку (статус картинки - open) на главной странице, которая вызывает это самое popup окно, когда popup окошко закрывается, картинку на главном сайте снова нужно менять (статус картинки - close). Внимание вопрос: Как отследить событие закрытия popup-окошка, в котором отображается страничка левого сайта???

У меня та же проблема.
Может мне кто-нибудь дать полный js код!!
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как отследить закрытие popup-окошка??? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]