Я хочу вызвать событие, когда всплывающее окно закрыто или, желательно, непосредственно перед закрытием. Я храню объект всплывающего окна как объект, но я не знаю ни одного способа привязки к событию закрытия или событию непосредственно перед закрытием окна.
var popupWindow = window.open("/popup.aspx", "popupWindow", "height=550,width=780");
Есть ли способ подписаться на событие close, используя jQuery, или просто необработанный javascript? Я использую jQuery и не могу добавить другую библиотеку, поэтому, если это невозможно сделать в jQuery, мне придется как-то свернуть свою собственную систему событий, чтобы она работала во всех браузерах.
UPDATE:
Я попытался использовать событие unload в jQuery, и по какой-то причине событие возникает, как только мое всплывающее окно открывается, а не когда оно закрывается. Если я использую Firebug, чтобы установить точку останова, чтобы задержать событие unload от подписки, событие unload работает так, как и должно, но по какой-то причине оно не работает правильно, когда javascript разрешено выполнять естественным образом.
var popupWindow = window.open("/popup.aspx", "popupWindow", "height=550,width=780");
$(popupWindow.window).unload(function() { alert('hello'); });
Кто-нибудь имеет представление о том, почему событие unload может быть вызвано при загрузке окна?
Еще один улов - то, что я заметил, что событие "unload" в jQuery не остается подписанным на окно, как это обычно происходит, если я просто делаю:
popupWindow.onunload = function(){alert('hello')};
Кажется, что отписаться от события каждый раз, когда оно поднято. Это должно случиться? Если бы не эта ошибка (или функция?) В jQuery, было бы хорошо, чтобы событие вызывалось при загрузке, поскольку я могу проверить свойство popupWindow.closed
внутри события, чтобы убедиться, что окно действительно закрыто.