前一陣做一個項目,在處理報表的時候時間偏長,客戶提出要做出一個等待視窗提示使用者等待(頁面太久沒反映,使用者還以為死了呢)。在分析這一需求之後,覺得如果要實現像winform應用中的processbar太困難了。最後,只好類比,做了一個“假”的等待表單,還好客戶也挺滿意。
這個等待表單實際上是利用了<object>標籤完成的。因為動態效果由<marquee>完成,該等待表單顯示出來的時候,整個table是透明的,只有中間的過程條在動,後面的任何按鈕都不能點擊。
首先做一個靜態頁面:downloadExcel.html
然後在處理畫面中加上這麼一段:
<TABLE border="0" id="processBarMask" bgcolor="#cccccc" style="VISIBILITY:hidden; POSITION: absolute" cellspacing="0" cellpadding="0">
<TR>
<TD align="center">
<object type="text/x-scriptlet" id="objProcessBar" style="z-index:65535;" width="302" height="102" data="downloadExcel.html"></object>
</TD>
</TR>
</TABLE>
一開始是隱藏起來的。當點擊處理按鈕之後,就將它顯示出來:
<SCRIPT language="javaScript">
var firstFlg = "0";
function processStart(){
with(document.all.processBarMask.style){
top = 0;
width = "100%";
height = "100%";
visibility = "visible";
}
document.all.processBarMask.focus();
}
function processEnd(){
document.all.processBarMask.style.visibility = "hidden";
}
</SCRIPT>
最後給處理按鈕加上處理:
<input type="button" id="btnOK" value="OK" onclick="processStart()" style="width:80px">