Всплывающее окно с таймером - PullRequest
0 голосов
/ 25 января 2010

По истечении некоторого указанного времени бездействия (например, в течение 10 минут, время бездействия) приложение должно выдать всплывающее окно с таймером (должно отображаться как 60 59 58 .... 1), которое должно закрыться в течение 60 секунд с отменой опция выбрана, и этот браузер должен закрыться, если пользователь не выбрал какую-либо опцию. Если пользователь выбирает опцию отмены в течение 60 секунд, она также должна быть закрыта.

Чтобы показать всплывающее окно, я использую setTimeout("pop()",600000);, но как включить таймер в этом, по крайней мере, этот блок должен закрыться в течение 60 секунд, если пользователь не выберет какую-либо опцию. Есть ли решение для этого?

Ответы [ 2 ]

1 голос
/ 25 января 2010

Вы можете снова использовать 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);
}
1 голос
/ 25 января 2010

Вы можете попробовать ввести приведенный ниже код во всплывающем окне.

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

<body onload="mytimer();">
...