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