открыть новое окно, как это:обнаруживая, когда всплывающее окно закрывается в Firefox
var newWindow = window.open('myPage.aspx', null, 'height=650,width=900,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=0, left=0');
И я жду его закрыть:
var windowTimer = window.setInterval(function() {
if (win.closed !== false) {
//If window is closed ...
window.clearInterval(windowTimer);
}
}, 100);
Это делает работу в Chrome и IE9 и Краю , но не в Firefox, почему?
Firefox не попадает внутрь функции, но он никогда не попадает на win.closed if
, даже если есть else
, он не входит в него ... есть альтернативы?
Решение, которое работало для меня:
На всплывающем окне:
//Fires an event on the window that opened it
window.onbeforeunload = function() {
window.opener.myEvent();
};
В главном окне:
window.myEvent= function() {
//This fires only when the popup gets closed on beforeunload
}
Примечание: событие, чтобы стрелять в главное окно должно быть объявлено общедоступным, чтобы оно было доступно, например window.myEvent= function()
Другая ссылка:cross-window javascript events
Не было бы лучше выполнить функцию 'onBeforeUnload' в недавно открывшемся окне, которое сообщит вашему старому окну, что оно было закрыто? (также, где определяется 'win'?). Вы можете легко создать логическое в родительском окне, к которому вы можете получить доступ, используя' window.opener [key] 'и записать в него значение, которое может занять ваш интервал, и которые должны работать в FF. – somethinghere