如何使用JavaScript或jQuery在一段时间后或session
到期时从主页关闭模式对话框?
使用以下代码打开对话框:
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);
}
}
模态对话框可以自己关闭,但在我的情况下它不是解决方案。
答案 0 :(得分:1)
当模态对话框打开时,主页面上的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.
};