簡體   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