把document.frmBase.action = url2; 
document.frmBase.submit(); 
这两句删了试试,应该可以吧.

解决方案 »

  1.   

    你的目的是为了让程序在这个地方等待2s吧,javascript里面没有提供这种功能额,你可以在函数里面判断wait的值来实现,也就是wait==0时,也可以用其他的一个变量,用来判断就可以了
      

  2.   

    主要是“传参”function goOnce(url2){ 
        document.frmBase.pdf.disabled = true;     if(wait == 0){ 
        document.frmBase.pdf.value = "输出PDF"; 
        document.frmBase.pdf.disabled = false; 
        wait=2; 
    document.frmBase.action = url2; 
    document.frmBase.submit(); 
        } 
        else{ 
        document.frmBase.pdf.value = "稍后打印"+wait; 
        wait--; 
        window.setTimeout(function(){goOnce(url2)},speed);} 
      

  3.   

    function goOnce(url2){ 
        document.frmBase.pdf.disabled = true;     if(wait == 0){ 
            document.frmBase.pdf.value = "输出PDF"; 
            document.frmBase.pdf.disabled = false; 
            wait=2; 
        } 
        else{ 
            document.frmBase.pdf.value = "稍后打印"+wait;
            wait--; 
            //以下代码有问题:
            window.setTimeout("goOnce(url2)",speed); //这个不是sleep,有问题
            document.frmBase.action = url2; 
            document.frmBase.submit(); 
        }

      

  4.   


    这个我试了,删除了,就无法打印PDF了。
      

  5.   

    window.setTimeout("goOnce(url2)",speed);
    如果想延时执行goOnce(url2);注意这有个问题,应该改成:
    window.setTimeout("goOnce('"+url2+"')",speed);
    延时结束时,url2 不是全局变量
      

  6.   

    你是想先设置延时打印,再保存?如果是这样,那form的 target 就不应该是当前页面, form submit 后,本窗口就刷新了,那些延时会被取消了
      

  7.   

    你判断wait==0后把按钮恢复正常不就可以了
      

  8.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <script type='text/javascript'>
    var speed = 1000; //速度 
        var wait = 2; //停留时间     function goOnce(){
    var obj = document.getElementById('pdf');
    obj.disabled = true; 
    if(wait == 0){ 
    obj.value = "outPDF"; 
    obj.disabled = false; 
    wait=2; 
                           //这里提交

    else{ 
    obj.disabled = false; 
    obj.value = "wait:("+wait +")";
    obj.disabled = true; 
    wait--; 
    window.setTimeout("goOnce()",speed); 
    }
          
    }  </script>
     </HEAD> <BODY>
     <form name=frmBase>
      <input id='pdf' type="button" value="outPDF" onclick="goOnce();"/>
      </form>
     </BODY>
    </HTML>测试了好用!
    LZ 应该注意的是 提交的时候, 和 window.setTimeout("goOnce()",speed);  的写法。
      

  9.   

    最后补充一下, 如果goOnce() 要传递参数的话。 window.setTimeout("goOnce()",speed);  改为: window.setTimeout(function(){goOnce(参数列表);},speed);  
      

  10.   

    谢谢大家~!我已经改了。发出来和大家分享一下~!~1
    var speed = 1000; //速度 
        var wait = 60; //停留时间 
    var timerId ;
        function goOnce(url2){
        document.frmBase.pdf.disabled = true; 
        document.frmBase.action = url2;
        document.frmBase.submit();
        timerId = window.setInterval(function(){doesPDFValid(url2);},speed);
        } 
        
        function doesPDFValid(){
         document.frmBase.pdf.value = "稍后打印"+wait;
         document.frmBase.pdf.disabled = true;
         if (wait == 0){
         document.frmBase.pdf.disabled = false; 
         document.frmBase.pdf.value = "输出PDF";
         window.clearInterval(timerId);
         wait = 60;
         }else
         wait--;
        }