更新 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();
}
}