timei2=0;
function timevalue2(s){//s为停止的时间
   if ( timei2++<s){
    setTimeout("timevalue2("+s+");",1000); 
    }
else{
//延时S秒后执行的语句
}
}

解决方案 »

  1.   

    var s = setTimeout("todo();",5000); 
    一句就行了.
      

  2.   

    楼上用setTimeout方法是让当前文档无代码执行的时候再进行执行。
    有没有办法让
    function a(p){
    abc.innerHTML="1";
    //暂停5秒钟但不跳出当前函数
    ...
    abc.innerHTML="2";
    }如果跳出了函数。则整个调用堆栈已经发生改变了。不再是原来的上下文。
    比如:
    function delayedExecution(s){
    function processSomething(){
    alert(0);
    }

    setTimeout("processSomething()", 2000);
    }
    这段代码就会出错。
    因为processSomething是在window的上下文中调用的 而非delayedExecution的上下文
      

  3.   

    timei2=0;
    function a(p,s){
    if abc.innerHTML!="1"
    abc.innerHTML="1";
    if ( timei2++<s){
    setTimeout("a("+s+");",1000);
    }
    else{
    //延时S秒后执行的语句//暂停5秒钟但不跳出当前函数
    ...
    abc.innerHTML="2";
    }
    }
      

  4.   

    上面再改一下
    timei2=0;
    function a(p,s){
    if abc.innerHTML!="1"
    abc.innerHTML="1";
    if ( timei2++<s){
    setTimeout("a("+p+","+s+");",1000);
    }
    else{
    //延时S秒后执行的语句//暂停5秒钟但不跳出当前函数
    ...
    abc.innerHTML="2";
    }
    }
      

  5.   

    不知道这样可否,
    function a()
    {
    setTimout("pause()",5000);
    function pause()
    {
    }
    abc.innerHTML="2";
    }