JAVALin 2011-02-25
情景:在DominoBS中点击提交按钮执行如下代码:
document.forms[0].submit(); window.close(); if(opener){ opener.top.location.reload();
功能:执行表单提交(保存),关闭当前窗,刷新父窗口
出现问题:网络延迟/Domino服务器负载较大时,window.close可能在保存文档动作(Domino服务器执行)未结束前执行了,导致当前修改的文档未保存成功。
解决方法:把原有的关闭脚本去掉,在表单中添加名为"$$Return"的域,执行如下公式:
@Return("<Bodyonload=\"try{top.opener.host;top.opener.location.reload();window.open('','_self');window.close();}catch(exp){window.open('','_self');window.close();}\"></Body>")
当表单所以任务执行完成以后才执行"$$Return"域中的代码,返回相应结果给浏览器。