繁体   English   中英

防止HTA窗口在VBScript或Javascript中关闭

[英]Keeping an HTA window from closing in VBScript or Javascript

我正在尝试在HTA中创建一个对话框,询问用户是否要在关闭前进行保存。 这是我的代码:

<script type="text/vbscript">
     Function exit(text)
     exit = MsgBox(text, vbYesNoCancel, "Dialog box")
     End Function
</script>
<script type="text/javascript">
     window.onbeforeunload = function(){
          var x = exit("Do you want to save?");
          if(x == 6){     //Yes
               save();
          }
          else if(x == 2){     //Cancel
               //Here I want to keep the window from closing
          }
     }
</script>

注意:我已经在javascript中声明了save()函数,但是我不会在这里发布它,因为它很复杂,并且比该问题中真正重要的要占用更多的代码空间。

如果用户单击“取消”,有什么方法可以防止窗口关闭(我直接在代码中插入的Javascript函数,还是在VBScript部分中声明并在Javascript部分中调用的VBScript函数)? 还是有另一种方式可以做我想做的事?

由于自IE7以来的一个错误,您无法以编程方式取消HTA中的窗口关闭。 这是与浏览器相关的,不能通过使用Quirks模式进行更改。

但是,您可以在关闭之前执行所需的任何同步代码。 实际上,保存更改的唯一方法是显示一个确认框,询问您“是否在退出之前保存更改?”,就像您已经做过的那样。 如果用户单击“确定”,请保存并关闭窗口,否则请关闭。

onbeforeunload处理程序返回一个字符串将打开一个本机确认框,该框显示返回的文本,并询问用户是否要保留或退出当前页面。 不过,这不是一个很好的解决方案。

从帮助中获取OnBeforeUnload。

window.event.returnValue = false;  

正确/错误或导致对话框出现的任何字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM