保持脚本的执行

时间:2011-12-06 08:21:22

标签: javascript jquery

只是想知道是否以编程方式停止脚本的执行,就像javascript函数“confirm”一样。 “确认”停止进一步执行脚本直到用户输入,我想为Jquery的BlockUI插件做同样的事情。

3 个答案:

答案 0 :(得分:3)

,你不能。
confirm函数一样,alert是一个模态对话框,只不过是 child window that requires users to interact with it before they can return to operating the parent application, thus preventing the workflow on the application main window
Javascript没有 sleep -ing机制。如果你想停止执行一个脚本...只能通过执行另一个内存/ CPU昂贵的脚本(例如无限循环)来冻结浏览器(从而停止执行目标脚本),但是有点打败了目的。
如果您知道自己想要做什么,就可以组织代码,以便模拟 sleep 过程。
这样做的好方法是使用回调和超时:

function f1(callback){
    // do some stuff
    // decide how much you want to wait
    setTimeout(callback,how_much_you_want_to_wait);
}

答案 1 :(得分:2)

我不认为它可能......你能做的最好的是,

  • 显示覆盖div,阻止页面上的任何其他用户互动
  • 在叠加层前面显示您的html弹出窗口
  • 在代码中,使用callbacks或'jquery binders'或'event listers'来执行其余代码

一个粗略的例子可能是,

function showDialog(fn){
    $('#overlay').show()
    $('#dialog').show().click(fn); // ideally bind the click to the close button of the dialog
}

现在,要显示对话框,

// code before the dial
showDialog(function(){
   // execute rest of the code
})

答案 2 :(得分:0)

Javascript没有sleep功能可能在其他语言中可用。你能做的最好的就是setTimeout

您可能会进行while true样式循环,但这只会刺激CPU使用量,这通常是不鼓励的。