注册 登录
编程论坛 VB6论坛

vb操作网页中的框架(有两个框架怎么办)

xzxxgwd 发布于 2014-12-11 17:14, 664 次点击
'WB为要处理的webbrowser
Private Function getFrames(ByVal WB As WebBrowser) As Object
    Dim pContainer As
    Dim pEnumerator As olelib.IEnumUnknown
    Dim pUnk As olelib.IUnknown
    Dim pBrowser As SHDocVwCtl.WebBrowser_V1
   
    Set pContainer = WB.Object.Document
     
    '有时候上面这段对象赋值出错,用下面这句就没有问题了
    'Set pContainer = WB.Document(备用)
    'Set pContainer = WB.Object.Document(主要)
     If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
       Set pContainer = Nothing
       Do While pEnumerator.Next(1, pUnk) = 0
          On Error Resume Next  '这句非常重要,不然有的网页会提示出错
          Set pBrowser = pUnk
          If Err.Number = 0 Then
             Print "Frame: " & pBrowser.LocationURL
            
             If pBrowser.LocationURL = pBrowser.LocationURL Then
             '"G:\框架函数调用\框架1.htm" Then '可以在这里加条件判断得到指定的frame中的src,基本可以根据url或者innerHTML中的某个关键字符
                Set getFrames = pBrowser
                Exit Function
            End If
          End If
   
       Loop
       Set pEnumerator = Nothing
    End If


   
End Function




Private Sub Command1_Click()
getFrames(WebBrowser1).Document.getElementById("but").Click

End Sub
当按钮单机时以上代码只能操作第一个框架中的id为but的按钮,如果有两个框架就会出错,怎么才能分辨框架呢。
1 回复
#2
风吹过b2014-12-11 23:27
我一般的处理方法是:
在 载入完成事件中,检查载入完成地址是哪个。
如果是 内框架的 页面的地址,那对 这个 OBJ 进行操作,就是直接操作 内框架 里页面。
根本不管它是在哪个框架。

反正是指定的 页面就行了。
1