ОБНОВЛЕНИЕ 2012-01-10 URL-адрес всплывающего окна находится в другом домене в качестве родительского окна, что является проблемой!Как я могу решить это?
Я использую следующий код, чтобы определить, закрыто ли всплывающее окно.Он отлично работает в Firefox 8 и Chrome, но не работает должным образом в IE9.В IE9 предупреждение с «true» показывает уже, когда всплывающее окно все еще открыто.Почему в IE9 есть ссылка на окно, а свойство closed
сообщает true
, когда окно все еще открыто?И как я могу это исправить?
Javascript
var dialogWindow;
var dialogTimer;
function openDialog(url, name, options) {
dialogWindow = window.open(url, name, options);
dialogTimer = setInterval(function() {
if(dialogWindow.closed) // IE9 reports true and executes function
{
alert(dialogWindow.closed); // alert with "true"
clearInterval(dialogTimer);
window.location.reload();
}
}, 2500);
if (dialogWindow && dialogWindow.focus)
dialogWindow.focus();
}
ОБНОВЛЕНИЕ Я также попробовал следующий подход, который показывает точно такое же поведение вIE9
var dialogWindow;
var dialogTimer;
function openDialog(url, name, options)
{
dialogWindow = window.open(url, name, options);
dialogTimer = setInterval("checkDialogOpen()", 2500);
if (dialogWindow && dialogWindow.focus)
dialogWindow.focus();
}
function checkDialogOpen()
{
if(dialogWindow.closed)
{
alert(dialogWindow.closed);
clearInterval(dialogTimer);
window.location.reload();
}
}