2011-12-20 178 views
2

在我的HTA中,如果發生錯誤,我將其保持打開狀態,如果一切順利,請將其關閉。在開始時,我將sysmenu屬性設置爲no,因爲我不希望用戶在完成之前關閉HTA。最後,我希望他們能夠點擊關閉按鈕。以下是我想要達到的目的,但似乎並不奏效?我懷疑我需要做些什麼才能讓HTA刷新它的窗口屬性?動態更改HTA窗口屬性

請注意,完全重新加載窗口和/或使腳本再執行任何的解決方案是不能接受的

If Not bHoldOpen Then 
    Call window.close 
Else 
    Dim tagHTA 
    Set tagHTA = document.getElementsByTagName("hta:application").item(0) 
    Call tagHTA.setAttribute("sysmenu","yes") 
End If 

回答

2

在運行時你不能改變它,它僅適用於HTA:塊爲值用於確定如何最初創建物理窗口。

我想你可以使用onBeforeUnload事件&呼叫cancelBubble中止密切產生警告,但我想它在IE8,它仍然看起來竊聽; http://support.microsoft.com/kb/946214

如果您只是在流程完成時取消隱藏「關閉」按鈕,用戶可能會更簡單,更容易理解。

+1

+1,[documentation](http://msdn.microsoft.com/en-us/library/ms536492%28VS.85%29.aspx)指出'sysMenu'屬性是隻讀的,它意味着它在初始加載後無法更改。 – 2011-12-21 08:28:46