1,502
社区成员
发帖
与我相关
我的任务
分享
' 为运行本程序,应在“菜单->工程->部件”中添加“Microsoft Internet Controls”
' 并在“菜单->工程->引用”中添加“Microsoft HTML Object Library”和“Edanmo's OLE interfaces & functions v1.4”
' Edanmo 's OLE interfaces & functions v1.4在有些机器可能没有,可以到这里下载:http://download.csdn.net/source/2652292
Private Sub Form_Load()
wb1.Navigate2 "d:\1.html"
End Sub
Private Sub wb1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Debug.Print URL
If URL = "http://www.baidu.com/" Then
getFrames(wb1).Document.All("kw").Value = "谷歌"
MsgBox getFrames(wb1).Document.All("kw").Value
End If
End Sub
'WB为要处理的webbrowser
Private Function getFrames(ByVal WB As WebBrowser) As Object
Dim pContainer As olelib.IOleContainer
Dim pEnumerator As olelib.IEnumUnknown
Dim pUnk As olelib.IUnknown
Dim pBrowser As SHDocVwCtl.WebBrowser_V1
Set pContainer = WB.Object.Document
If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
Set pContainer = Nothing
Do While pEnumerator.Next(1, pUnk) = 0
Set pBrowser = pUnk
If Err.Number = 0 Then
Print "Frame: " & pBrowser.LocationURL
If pBrowser.LocationURL = "http://www.baidu.com/" Then '可以在这里加条件判断得到指定的frame,基本可以根据url或者innerHTML中的某个关键字符
Set getFrames = pBrowser
Exit Function
End If
End If
Loop
Set pEnumerator = Nothing
End If
End Function