标题:vb操作网页中的框架(有两个框架怎么办)
只看楼主
xzxxgwd
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-12-11
结帖率:100%
已结贴  问题点数:20 回复次数:1 
vb操作网页中的框架(有两个框架怎么办)
'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的按钮,如果有两个框架就会出错,怎么才能分辨框架呢。
搜索更多相关主题的帖子: WebBrowser Object 网页 
2014-12-11 17:14
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:20 
我一般的处理方法是:
在 载入完成事件中,检查载入完成地址是哪个。
如果是 内框架的 页面的地址,那对 这个 OBJ 进行操作,就是直接操作 内框架 里页面。
根本不管它是在哪个框架。

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

授人于鱼,不如授人于渔
早已停用QQ了
2014-12-11 23:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-439844-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.462608 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved