带有计时器的弹出框

时间:2010-01-25 13:33:43

标签: javascript settimeout

在一些指定的不活动时间之后(IDLE时间说10分钟)应用程序应该给出一个带有计时器的弹出框(应该显示为60 59 58 .... 1),该框应该在60秒内关闭并取消如果用户未选择任何选项,则选择该选项并关闭浏览器。如果用户在60秒内选择取消选项,也应该关闭。

要显示一个弹出框我正在使用setTimeout("pop()",600000);,但是如何包含一个计时器,如果用户没有选择任何选项,那么至少该框应在60秒内关闭。有解决方案吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试在弹出窗口中输入以下代码。

<script>
  function mytimer()
  {
    setTimeout(function closewin(){window.close;}, 600000);
  }
</script>

<body onload="mytimer();">

答案 1 :(得分:1)

您可以再次使用setTimeout()setInterval()。在pop()函数中,启动另一个超时为1秒(1000毫秒)的函数,并在每次调用时减少计数器并更新标签。当计数器达到0时,检查该框是否仍在屏幕上,如果是,请调用window.close()(并非所有浏览器都会实际响应关闭尝试)。

示例:

function pop() {
  var counter = 60;

  var box = document.createElement('div');
  var label = document.createElement('span');
  label.innerText = counter;
  box.appendChild(label);

  // Position box and label as you wish.

  function tick() {
    counter--;
    if (counter == 0) {
      window.close();
    } else {
      label.innerText = counter;
      setTimeout(tick, 1000);
    }
  }

  setTimeout(tick, 1000);
}