[英]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.