当前位置:首页 -> 综合频道 -> 站长之家

VB webbrowser 控件的应用(跨域 内嵌网..

'------------------------------------------------  

' 环境准备:  

' 1.为运行本程序,应在“菜单->工程->部件”中添加“Microsoft Internet Controls”  

' 2.并在“菜单->工程->引用”中添加“Microsoft HTML Object Library”和“Edanmo's OLE interfaces & functions v1.4”  

' 3.请先建立文件"d:\1.html",内容为:<iframe application="yes" width=700 height=600 src="http://www.baidu.com" mce_src="http://www.baidu.com"></iframe>  

' 4.Edanmo 's OLE interfaces & functions v1.4在有些机器可能没有,可以到这里下载:http://download.csdn.net/source/2652292  

'  

' Author    : sysdzw  

' E-mail    : sysdzw@163.com  

' Bolg      : http://hi.baidu.com/sysdzw  

' QQ        : 171977759  

' Date      : 2010-4-6  

'------------------------------------------------  

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  


猜你喜欢