前一阵做一个项目,在处理报表的时候时间偏长,客户提出要做出一个等待窗口提示用户等待(页面太久没反映,用户还以为死了呢)。在分析这一需求之后,觉得如果要实现像winform应用中的PRocessbar太困难了。最后,只好模拟,做了一个“假”的等待窗体,还好客户也挺满意。
这个等待窗体实际上是利用了<object>标签完成的。因为动态效果由<marquee>完成,该等待窗体显示出来的时候,整个table是透明的,只有中间的过程条在动,后面的任何按钮都不能点击。
首先做一个静态页面:downloadExcel.html
<!-- .tborder { BORDER-RIGHT:#333333 2px solid; BORDER-TOP:#333333 2px solid; BORDER-LEFT:#333333 2px solid; BORDER-BOTTOM:#333333 2px solid; border-collapse:collapse; } .tborder1 { BORDER-RIGHT:#cccccc 3px solid; BORDER-BOTTOM:#cccccc 3px solid; border-collapse:collapse; } .dropShadow {filter:dropshadow(color=#a9a9a9,offx=2,offy=2,positive=true)} -->
|
然后在处理画面中加上这么一段:
<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">
新闻热点
疑难解答