我有这段代码
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秒后也没有被调用。
答案 0 :(得分:3)
正如MSDN规定的那样,确认中只显示文本的参数。因此,方法本身没有办法告诉它在X秒后假设某事,而不是在VBScript中确认框的工作方式。
基本上,你的javascript在弹出提示点停止。即使你有一个试图在弹出提示的范围内强制返回的setimeout,它也不会完成,直到它试图影响的弹出提示被确认。例如,进行50次迭代的“alert(”hi“)for循环。你不会立刻得到它们,但是当每个提示符之间的脚本停止时,一个接一个地得到它们。
建议:因此,最好创建一个带有HTML的弹出窗口以显示给用户。如果您担心弹出窗口被阻止,那么可能使用DHTML在HTML文档中创建一些内容,或者您可以使用jquery-ui模式。
答案 1 :(得分:1)
查看jquery-ui以模拟确认框。