如何防止浏览器对话框阻止ui计时器

时间:2015-06-25 11:03:26

标签: javascript html multithreading javascript-events counter

我想在html中设置一个计数器。默认情况下,浏览器对话框如警报,关闭警告等会阻止计数器执行。我该如何预防呢?我的代码就像下面的代码片段

var count = 30;
var counter = setInterval(timer, 1000);

function timer() {
  count = count - 1;
  if (count <= 0) {
    clearInterval(counter);

    return;
  }

  document.getElementById("timer").innerHTML = count + " secs";
}
window.onbeforeunload = function() {
  return "I am blocking counter"
}
<span id="timer">...</span>
<button type="button" name="name" value="caption" onclick="alert('block this')">block counter</button>

jsfiddle

1 个答案:

答案 0 :(得分:1)

Javascript对话框总是阻止,你唯一的方法是编写自己的对话框。

因此,您不会弹出一个io阻止警告框,而是弹出一个div容器,它位于页面顶部。

但是你无法避免使用onbeforeunload的对话框。