我有一个旧的 VB6/ActiveX Web 应用程序,它在 IE9 上运行不佳
具体来说,当应用程序打开模态窗口时,它会锁定父窗口。它在 IE7 和 IE8 下似乎运行良好
是否有我可以更改的设置来使其表现更好。我尝试将网站添加到“工具”菜单下的“可比性视图”设置中,但没有更好的结果。
编辑:
我已经将该网站添加到我的网站Trusted Sites
并允许所有 ActiveX 选项(实际上一切都是允许的)
答案1
答案2
我会针对每个可能使用的区域尝试此操作(我将引用 Internet 区域):工具>Internet 选项>安全>自定义级别,向下滚动到“ActiveX 控件和插件”区域,降低所有控件的安全性作为测试。如果问题解决了,则逐个提高它们的安全性,直到再次出现问题,然后再关闭该设置。
答案3
它似乎:
由于 VB6 不再受支持,因此不能保证与基于 IE9 的 WebBrowser 控件完全兼容。
当显示 vb6 模式对话框时,IE9 会禁用父窗口,但关闭时不会重新启用它们。
这是我在调用显示模态对话框之后添加到代码中的解决方法:
Me.Show vbModal
Call EnableParentWindows(Me.hwnd)
...
Private Declare Function EnableWindow& Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long)
Public Function EnableParentWindows(ByVal hwnd As Long) As Boolean
' This function is intended to fix the IE9 modal dialog freeze problem
While hwnd <> 0
EnableWindow hwnd, &O1
hwnd = GetParent(hwnd)
Wend
EnableParentWindows = True
End Function
这对我有用。
答案4
您是否使用 TabProcGrowth=0 进行调试?我的 ActiveX/IE9 因此被锁定。我不得不将该值重置为 1 才能正常运行我的 AX(但当然不能调试)