我现在遇到一个问题,由于表单提交的数据量较大,所以处理页面出来的速度很慢,我希望能在这个过程中给出提示,现在我的方法是在提交时触发onclick事件打开新窗口,代码如下:
<form ... action="setup.php?func=doevent">
...
<input type="submit" value="提交" name="submit" onclick="var childWin=window.open(process.htm,,width=250,height=40)">
</form>
然后在信息处理页面doevent.php中处理信息关闭打开的窗口childWin;
代码如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
childWin.close();
//-->
</SCRIPT>
可是这样做会报“childWin未经定义”,有谁知道如何在父窗口中去关闭他的子窗口。
因为页面提交跳转,childWin句柄在新页中不再有效,建议你用隐藏帧的方式,提交后将原页面藏起来,使窗口句柄继续有效。参考
<frameset name=myfrmset cols="*,1005">
<frame name=hide src=target.htm>
<frame name=show src=submit.htm>
</frameset>
target.htm//将这个换为你的php页
<input type=button onclick=top.show.childWin.close()>
submit.htm
<script>
var childWin;
function myopen()
{
childWin=window.open(process.htm,,width=250,height=40,status=yes);
top.myfrmset.cols="100%,*";
}
</script>
<form action="target.htm" target=hide>
<input type="submit" value="提交" name="submit" onclick="myopen()">
<input type=button onclick=childWin.close()>
</form>
方法很多种,就按照你的想法吧:)
<input type="submit" value="提交" name="submit" onclick="var childWin=window.open(process.htm,submit,width=250,height=40)">
</form> //注意打开新窗口的第二个参数
在关闭打开的窗口childWin之前,肯定要先得到这个窗口的句柄才行:
<SCRIPT LANGUAGE="JavaScript">
<!--
childWin=window.open(,submit); //根据submit得到刚刚窗口的句柄
childWin.close();
//-->
</SCRIPT>
搞定了。