0

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

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

4

2 回答 2

1

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

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

<body onload="mytimer();">
于 2010-01-25T13:38:27.320 回答
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);
}
于 2010-01-25T13:43:16.503 回答