为什么Internet Explorer没有调用我的VBscript事件处理程序?

时间:2016-02-16 10:00:37

标签: internet-explorer vbscript

我正在尝试通过VBscript自动填充Internet Explorer中的某些表单但我遇到了问题。

我的第一个问题是处理Internet Explorer的完整性模式。我按照这里的步骤解决了这个问题:http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/internet-explorer-automation-protected-mode-lcie-default-integrity-level-medium.aspx

我的第二个问题是使用Busy和ReadyState结合检查页面是否已加载并没有给我正确的结果,它是在最终页面实际加载之前完成的。我相信这是我得到的重定向;我在公司环境中,所以在我到达我的表格之前,单点登录检查我是谁。

我的想法是使用事件回调DocumentComplete来检查最终页面是否已加载,但我看不到我的函数被调用。

我在下面添加了一个代码段:

Option Explicit
Dim objIeMedium
Set objIeMedium = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")

Dim isDocumentComplete : isDocumentComplete = False

Sub objIeMedium_DocumentComplete(ByVal pdisp, ByVal url)
    Wscript.Echo "DocumentComplete"
    isDocumentComplete = True
End Sub

Sub objIeMedium_OnQuit()
    Wscript.Echo "Quitting"
    isDocumentComplete = True
End Sub

Sub objIeMedium_NavigateComplete(ByVal pdisp, ByVal url)
    Wscript.Echo "NavigateComplete"
    isDocumentComplete = True
End Sub

objIeMedium.Navigate("http://abc/xyz.aspx")
objIeMedium.Visible = True
'Do While objIeMedium.Busy And objIeMedium.ReadyState <> 4: WScript.Sleep 100: Loop

Do Until isDocumentComplete
    Wscript.Sleep 100
Loop

Wscript.Echo "Done"

objIeMedium.Quit
Set objIeMedium = Nothing

我做了什么明显的错误吗?

0 个答案:

没有答案