javascript - window.closed IE9 在窗口仍然打开时报告 true

标签 javascript internet-explorer-9 window.open window.closed

更新 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 中的一个错误。

http://support.microsoft.com/kb/241109

关于javascript - window.closed IE9 在窗口仍然打开时报告 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447001/

相关文章:

javascript - 如何将图像从主页发送到另一个?

javascript - 如何在Vue组件中导入外部函数?

javascript - 资源文件变量在 js 警报框中给出字符串 ASCII 代码问题

php - 我可以在 functions.php 中放置 IE 条件吗 - WordPress

internet-explorer-8 - 使用 IE7、IE8、IE9 和 IE10 中的源映射调试 JavaScript?

javascript - 查询字符串被 window.open() chop 了吗?

javascript - 使用 jQuery 创建带有 JSON 结果的分组动态行

CSS 错误或 IE 兼容性问题?

javascript - 开窗(无声)

javascript - 空白页上的书签