javascript confirm()在对话框打开时终止我的脚本

javascript confirm()在对话框打开时终止我的脚本,javascript,Javascript,我有一个脚本来显示每小时的秒数,演示JSFIDLE 按照我的脚本: <script type="text/javascript"> function updateClock() { var now = new Date(); var seconds = now.getSeconds(); var elem = document.getElementById('clock'); elem.innerHTML = seconds; } functio

我有一个脚本来显示每小时的秒数,演示JSFIDLE

按照我的脚本:

<script type="text/javascript">
function updateClock() {
    var now = new Date();
    var seconds = now.getSeconds();

    var elem = document.getElementById('clock');
    elem.innerHTML =  seconds;
}

function confirma(){
    confirm('confirmation?');
}
</script>

<body onload="setInterval('updateClock()', 200);">
<h1 id="clock"></h1>
    <button onclick="confirma()">confirm!</button>
 </body>
我的脚本运行良好,但当我单击“确认”按钮时!,秒不增加冻结,
为什么?

您可以使用纯Html而不是弹出窗口,因为弹出窗口将停止javascript,直到您单击“是”或“否”

我的建议是把这个html放在确认按钮之后

<div id="test" class="testOld">
        Do you want to confirm
        <button onclick="test()">Yes</button>
        <button onclick="test2()">No</button>
    </div>
并按如下方式修改JavaScript:

function confirma(){
    $("#test").removeClass("testOld");
     $("#test").addClass("testNew");
}
function test(){
// code after yes
}
function test2(){
//code after no
}

我认为,因为JavaScript是单线程的,所以setInterval函数不会像您所期望的那样在后台运行。简而言之,它只是安排一个自动呼叫。确认、警报或提示功能在显示消息时阻止JavaScript执行。@Zoltan如何在对话框打开时保持第二次运行?您是否在寻找类似的内容:?@ahm据我所知,内置的确认对话框无法执行,因为这是标准的浏览器行为。您必须使用一些第三方对话框实现,如jQuery UI或Bootstrap。不要对字符串使用setTimeout或setInterval,因为这就像邪恶的eval!改用函数:setIntervalueUpdateClock,200。
function confirma(){
    $("#test").removeClass("testOld");
     $("#test").addClass("testNew");
}
function test(){
// code after yes
}
function test2(){
//code after no
}