javascript: Как родительское окно может узнать, что его дочернее окно закрыто? - PullRequest
9 голосов
/ 09 марта 2011

Я хочу выполнить функцию, когда открытое дочернее окно закрыто.Код открытия дочернего окна:

outWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=600, height=400, top=100, left=100);

Я хочу вызвать функцию JavaScript, написанную в родительском окне. Я использую YUI-2 для разработки плагина.Как я могу заставить это работать?какое событие нужно зарегистрировать?

заранее спасибо.

Ответы [ 2 ]

32 голосов
/ 09 марта 2011

Вы можете сделать что-то подобное.

var intervalID, childWindow;

childWindow = window.open("http://www.google.com");

function checkWindow() {
    if (childWindow && childWindow.closed) {
        window.clearInterval(intervalID);
        alert('closed');
    }
}
var intervalID = window.setInterval(checkWindow, 500);

Ссылки: window.setInterval и этот ответ .

Простой пример jsfiddle .

4 голосов
/ 09 марта 2011

Вы можете попытаться получить доступ к родительскому окну:

window.opener.functionThatYouWant();

Этот код находится внутри дочернего окна.

Но если вы откроете окно, URL находится в другом домене (неlocalhost), вы не можете получить к нему доступ из-за проблем безопасности.

Я использовал этот код в Firefox, я не уверен, работает ли он кроссбраузер.

...