繁体   English   中英

如何从父窗口关闭模式对话框?

[英]How to close modal dialog from parent window?

一段时间后,或者session期满后,如何使用JavaScript或jQuery从主页关闭模式对话框?

使用以下代码打开对话框:

var result = window.showModalDialog("test.aspx" ... );

计数器到期时必须关闭对话框,如下所示:

 function Discount() {
     leftSeconds = leftSeconds - 1;
     try { document.getElementById('tbLeft').value = leftSeconds; } catch (ex) { }
     if (leftSeconds <= 5) {
          clearTimeout(t);
          // code for closing modal dialog(s)

     } else {
          t = setTimeout("Discount()", 1000);
     }
 }

模态对话框可以自己关闭,但对于我而言,这不是解决方案。

模态对话框打开后,主页上的javascript执行将停止,因为它正在等待返回值(即使您可能不想返回一个值,或对返回的值执行任何操作)。

您可以通过这个小示例进行检查。 当您单击按钮时,页面打开,计时器停止更新。 关闭页面后,将恢复执行:

<!DOCTYPE html>
<html>
<head>
    <script>
        var t = 0;
        function count() {
            document.getElementById('div').innerHTML = ++t;
        }
        var timer = setInterval(count, 1000);
    </script>
</head>
<body>
    <div id='div'></div>
    <button onclick="window.showModalDialog('http://www.google.es');">Open window</button>
</body>
</html>

因此,如果您想自动关闭窗口,则需要从新文档本身进行关闭。 我的建议? 在模式页面的window.load事件中实现您的计时器,以便它可以在所需时间后关闭。

window.onload = function() {
    setTimeout(function() { window.close(); }, 60000); //close window after 1 minute.
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM