Domino BS中使用submit后执行关闭窗口问题

情景:在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"域中的代码,返回相应结果给浏览器。

相关推荐