[英]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.