简体   繁体   English

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

[英]How do I prevent browser dialogs from blocking the UI timers

I want to set a counter in html.我想在 html 中设置一个计数器。 By default browser dialogs like alert, on close warning etc prevent counter from executing.默认情况下,警报、关闭警告等浏览器对话框会阻止计数器执行。 How do I prevent that?我该如何防止? My code is some what like the snippet given below:我的代码有点像下面给出的片段:

 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提琴手

Javascript dialogs are always io blocking, the only way you have about this is to program your own dialogs. Javascript 对话框总是 io 阻塞,唯一的方法就是编写自己的对话框。

So instead of popping up an io blocking alert box, you would pop up a div container which you position on top of your page.因此,您不会弹出一个 io 阻塞警告框,而是弹出一个 div 容器,该容器位于页面顶部。

You can't avoid the dialog for onbeforeunload though.但是,您无法避免 onbeforeunload 的对话框。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM