2011-12-20 140 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