用JavaScript确认()

时间:2014-01-28 14:22:32

标签: javascript settimeout

我有这段代码

function popup() {
    //var x;
    var counter = setTimeout(myFun, 15000);
    var r = confirm("Press a button!");
    if (r == true) {
       //x = "You pressed OK!";
       clearTimeout(counter);
    } else {
         //x = "You pressed Cancel!";
         myFun();
    }
}

function myFun() {
   //some code here
}

现在,如果用户在确认框中按OK/Cancel或关闭确认框,则相应地执行上述代码。

但问题是如果用户没有做上述任何事情 myFun()即使在setTimeout函数15秒后也没有被调用。

2 个答案:

答案 0 :(得分:3)

正如MSDN规定的那样,确认中只显示文本的参数。因此,方法本身没有办法告诉它在X秒后假设某事,而不是在VBScript中确认框的工作方式。

基本上,你的javascript在弹出提示点停止。即使你有一个试图在弹出提示的范围内强制返回的setimeout,它也不会完成,直到它试图影响的弹出提示被确认。例如,进行50次迭代的“alert(”hi“)for循环。你不会立刻得到它们,但是当每个提示符之间的脚本停止时,一个接一个地得到它们。

建议:因此,最好创建一个带有HTML的弹出窗口以显示给用户。如果您担心弹出窗口被阻止,那么可能使用DHTML在HTML文档中创建一些内容,或者您​​可以使用jquery-ui模式。

答案 1 :(得分:1)

查看jquery-ui以模拟确认框。