描述:在一段极度耗时的算法执行之前居中显示等待提示,在算法执行结束关闭提示。

解决方案 »

  1.   

    执行开始时,调用一个方法,显示一个有等待内容的div
    执行完成了,调用另一个方法,隐藏刚刚那个div
      

  2.   

    写4个js的function:1.调用层来显示你要展示的提示语。2.要执行的算法。3.用来隐藏层的提示语的层。4.包含1.2.3方法,被执行的事件所调用的方法。
    给个例子,不知道适合不AddProcessbar(); 
    var bwidth=0; 
    var swidth = document.all.waiting.clientWidth; 
     
    function CheckIsProcessBar(obj) 

    if (obj.IsShowProcessBar=="True")  

    return false; 
    }  
    else 

    return true; 


     
    function CheckClick(e) 

    if (e == 1) 

    if (bwidth<swidth*0.98){ 
    bwidth += (swidth - bwidth) * 0.025; 
    if (document.all)document.sbar.width = bwidth; 
    else document.rating.clip.width = bwidth; 
    setTimeout('CheckClick(1);',150); 
     


    else 

    if(document.all) 

    if(document.all.waiting.style.visibility == 'visible') 
    {document.all.waiting.style.visibility = 'hidden'; 
    bwidth = 1;} 
    whichIt = event.srcElement; 
     
    while (CheckIsProcessBar(whichIt)) 

    whichIt = whichIt.parentElement; 
    if (whichIt == null)return true; 

     
     
    document.all.waiting.style.pixelTop = (document.body.offsetHeight - document.all.waiting.clientHeight) / 2 + document.body.scrollTop; 
    document.all.waiting.style.pixelLeft = (document.body.offsetWidth - document.all.waiting.clientWidth) / 2 + document.body.scrollLeft; 
    document.all.waiting.style.visibility = 'visible'; 
    if(!bwidth)CheckClick(1); 
    bwidth = 1; 
     

     
    else 

     
    if(document.waiting.visibility == 'show') 
    {document.waiting.visibility = 'hide'; 
    document.rating.visibility = 'hide'; 
    bwidth = 1;} 
    if(e.target.href.toString() != '') 

    document.waiting.top = (window.innerHeight - document.waiting.clip.height) / 2 + self.pageYOffset; 
    document.waiting.left = (window.innerWidth - document.waiting.clip.width) / 2 + self.pageXOffset; 
    document.waiting.visibility = 'show'; 
    document.rating.top = (window.innerHeight - document.waiting.clip.height) / 2 + self.pageYOffset+document.waiting.clip.height-10; 
    document.rating.left = (window.innerWidth - document.waiting.clip.width) / 2 + self.pageXOffset; 
    document.rating.visibility = 'show'; 
    if(!bwidth)CheckClick(1); 
    bwidth = 1; 


    return true; 


     
    function AddProcessbar() 

     
    var Str="" 
    Str+= "<div id=waiting style=position:absolute;top:50px;left:100px;z-index:1;visibility:hidden >"; 
    Str+= "<layer name=waiting visibility=visible zIndex=2 >" 
    Str+= "<table border=2 cellspacing=1 cellpadding=0 bordercolorlight=#FFFFFF bordercolordark=#C0C0C0 bgcolor=#E0E0E0>" 
    Str+= " <tr>" 
    Str+= " <td bgcolor=#E0E0E0 height=30px width=300px align=center>" 
    Str+= " <font color=black>系統正在處理中</font>" 
    Str+= " </td>" 
    Str+= " </tr>" 
    Str+= " <tr>" 
    Str+= " <td bgcolor=#E0E0E0>" 
    Str+= " <img width=1 height=10 name=sbar style=background-color:#6699cc>" 
    Str+= " </td>" 
    Str+= " </tr>" 
    Str+= "</table> " 
    Str+= "</layer>" 
    Str+= "</div>" 
    document.write(Str) 
     
    if(document.all)document.onclick = CheckClick;  

    <HTML> 
    <HEAD> 
    <script language="javascript" src="ShowProcessBar.js"></script> 
    </HEAD> 
    <BODY> 
    <A href="error.asp" IsShowProcessBar="True">A Href</a> 
    <BR> 
    <BR> 
    <span onclick="location.href='error.asp'" style="cursor:hand" IsShowProcessBar="True"><font color=blue>Span</font></span> 
    <BR> 
    <form action="error.asp"> 
    <input type=Submit value="Submit"> 
    <input type=button value="normal button" IsShowProcessBar="True"> 
    </form> 
    <P IsShowProcessBar="True">AAAAAAAAAAAAA</P> 
    </BODY> 
    </HTML>