更新 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();
}
}
最佳答案
据我所知,这是 IE9 中的一个错误。
关于javascript - window.closed IE9 在窗口仍然打开时报告 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447001/