powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как отследить закрытие popup-окошка???
15 сообщений из 15, страница 1 из 1
Как отследить закрытие popup-окошка???
    #34939672
Impish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть главная страница сайта, на ней есть линк в виде картинки, на событии onclik которого открывается popup окошко, в котором отображается страничка левого сайта. Когда эта самая страничка открыта, нужно менять картинку (статус картинки - open) на главной странице, которая вызывает это самое popup окно, когда popup окошко закрывается, картинку на главном сайте снова нужно менять (статус картинки - close). Внимание вопрос: Как отследить событие закрытия popup-окошка, в котором отображается страничка левого сайта???
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34939781
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В "левом" окошке
Код: plaintext
<body onbeforeunload='your_function();'>
а в функции обращаешься к элементам родительского окна.
(если надо как, то недавно такая тема пробегала тут)
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34939881
Impish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня нету body левого окошка. В этом-то вся и проблема. В окошке страничка левого сайта, у меня нет к ней доступа, я не могу в ней код менять.
А вызываю я её так: onclick="javascript:window.open('http://.....');"
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34940343
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таймером проверять состояние окна, пока не вернется ошибка, отличная от access denied?
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34942224
Impish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким таймером? Откуда что проверять? Можно, поподробнее?
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34942579
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каким таймером?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
Как отследить закрытие popup-окошка???
    #34942770
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще один очень заманчивый вариант.
При открытии окна мы имеем ссылку на него и, хотя мы не можем переназначить ему события, мы можем выполнять его методы.

Допустим, есть ссылка - вызываем свою функцию, где открываем новое окно, в которое помещаем требуемый контекст:
Код: 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
Как отследить закрытие popup-окошка???
    #34942781
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, да ... лучше всего использовать именно событие onbeforeunload, так как при onunload мы потеряем дескриптор окна (скорей всего, он станет null).
P.S. onclose у window нет
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34942967
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В окне чужой сайт, и если я не ошибаюсь, то как и с чужим сайтом во фрейме, будет облом при newwin.execScript в виде acess denied.
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34942985
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я попробовал - получилось ...
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34943134
Impish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую следующий вариант:

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

}

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

Подскажите плз., что я не так делаю:(
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34943203
Impish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовала первый вариант:
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
Как отследить закрытие popup-окошка???
    #34943239
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все оказалось гораздо проще )
Код: plaintext
1.
2.
3.
function checkWindow(){
    alert(wnd.closed);
    timer = setTimeout("checkWindow()",  1000 );
}
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #34944903
Impish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобралась! Работает! Всем большое спасибо!
...
Рейтинг: 0 / 0
Как отследить закрытие popup-окошка???
    #35074053
ella08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЕсть главная страница сайта, на ней есть линк в виде картинки, на событии onclik которого открывается popup окошко, в котором отображается страничка левого сайта. Когда эта самая страничка открыта, нужно менять картинку (статус картинки - open) на главной странице, которая вызывает это самое popup окно, когда popup окошко закрывается, картинку на главном сайте снова нужно менять (статус картинки - close). Внимание вопрос: Как отследить событие закрытия popup-окошка, в котором отображается страничка левого сайта???

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


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