vb-跨域访问网页最简单方法,获得特定的frame进行处理

vb-跨域访问网页最简单方法,获得特定的frame进行处理

以下三种方法所用时间为130,82,28 微秒(一秒=100万微秒,=1000毫秒,1毫秒=1000微秒)

Private Sub Command1_Click()
Dim Doc2 As HTMLDocument
Dim Web2 As WebBrowser_V1
 Set Web2 = GetFrameIframeLikeUrl(WebBrowser1.Document, "*baidu.com*")
Set Web2 = GetFrameLikeUrl(WebBrowser1.Document, "*baidu.com*")
Set Web2 = FindFrameByUrl(WebBrowser1.Document, "*baidu.com*")

If Not Web2 Is Nothing Then
    Set Doc2 = Web2.Document
    'MsgBox "框架网页中的文字是:" & Doc2.body.innerText
End If
End Sub
'以下三种方法所用时间为130,82,28 微秒(一秒=100万微秒,=1000毫秒,1毫秒=1000微秒)


Function GetFrameIframeLikeUrl(Vdoc As HTMLDocument, LikeUrl As String) As WebBrowser_V1

Dim Vtag, Tname As String, FrameWeb As WebBrowser_V1
For Each Vtag In Vdoc.All
        Tname = Vtag.tagName
        If Tname = "IFRAME" Or Tname = "FRAME" Then
            Set FrameWeb = Vtag
              If FrameWeb.LocationURL Like LikeUrl Then
 
                  Set GetFrameIframeLikeUrl = FrameWeb
                  Exit Function
             End If
        End If
Next
End Function


Function GetFrameLikeUrl(Vdoc As HTMLDocument, LikeUrl As String) As WebBrowser_V1
 
      Dim FrameWeb As WebBrowser_V1, MyFrames As Object, I As Long
      Set MyFrames = Vdoc.getElementsByTagName("FRAME")
      For I = 0 To MyFrames.length - 1
        Set FrameWeb = MyFrames(I)
        If FrameWeb.LocationURL Like LikeUrl Then
        
             Set GetFrameLikeUrl = FrameWeb
             Exit Function
        End If
      Next
      
End Function
Function FindFrameByUrl(Doc As HTMLDocument, LikeUrl As String) As WebBrowser_V1
'方法2:按网址得到跨域的web
''DOC为要处理的webbrowser.DOCUMENT
'这个方法要引用OLELIB.TLB  http://www.mvps.org/emorcillo/download/vb6/tl_ole.zip
 

On Error Resume Next
    Dim pContainer As olelib.IOleContainer
    Dim pEnumerator As olelib.IEnumUnknown
    Dim pUnk As olelib.IUnknown
    Dim pBrowser As WebBrowser_V1
   
    Set pContainer = Doc
    If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
       Do While pEnumerator.Next(1, pUnk) = 0
          Set pBrowser = pUnk
           
             If pBrowser.LocationURL Like LikeUrl Then
             '可以在这里加条件判断得到指定的frame,基本可以根据url或者innerHTML中的某个关键字符
       
                Set FindFrameByUrl = pBrowser
                
                Exit Do
            End If
       Loop
       Set pEnumerator = Nothing
    End If
DoEnd:
       Set pContainer = Nothing
    
End Function
'130,82,28


 

众所周知,IE浏览器的性能是很差的,特别在使用诸如 WebQQ 2.0 这样的丰富的网页应用时,你就能明显感觉到 IE的内核 和 谷歌浏览器的webkit内核 之间的性能差异了,那么有没办法提高 IE 的性能呢? Chrome Frame 是 Google 推出的一个针对 IE 6,7,8 开发的免费开源的浏览器插件,它可以让IE浏览器使用上webkit 内核。使用该插件后,用户的 IE 将获得和Chrome浏览器一样的高性能和丰富的功能,例如高速的Javascript引擎、支持HTML5、CSS3等新特性…… 用 IE 的壳,装上 Chrome 的芯 Chrome Frame 插件实际上就是可以让用户的浏览器外观依然是 IE 的菜单和界面,但当用户浏览网页时,实际上使用的是 Google Chrome 浏览器的内核来对页面进行运算解析和渲染。简单地说,就是用 IE 的壳,装上 Chrome 的芯。 IE在安装了 Chrome Frame 后,Acid测试达到了100分满分 使用谷歌浏览器内嵌框架 Chrome Frame 的优势: IE6提速40倍,IE8提速10倍 提高您的网页浏览速度 在使用谷歌浏览器的内嵌框架后,浏览网站可获得更快的响应速度和性能。 使用更多高级功能 通过谷歌浏览器内嵌框架,你的浏览器可以等到诸如HTML、CSS3等新功能的支持。 不会改变您原来的上网方式 谷歌浏览器内嵌框架 Chrome Frame 依然使用IE的界面和菜单,不会改变你原来的上网习惯。 禁用和卸载Chrome Frame方法: 因为国内很多例如网上银行之类的应用只支持万恶的IE,当你需要禁用Chrome Frame时,只需要: 1. 工具-管理加载项 2. 在工具栏和扩展中,找到ChromeFrame BHO. 3. 禁用它 另外,卸载Chrome Frame的话,只要在控制面板中像卸载普通软件一样卸载即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专注VB编程开发20年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值