| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:关于在Webbroswer中多框架页面的操作问题
只看楼主 加入收藏
狂奔小强
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-2-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
关于在Webbroswer中多框架页面的操作问题
程序启动后,会进入一个多框架网页,我想让程序判断所有框架中的内容是否加载完毕,加载完毕后再进行下面的操作该怎么办?BUSY对多框架无效。还没加载完就进行下面的操作了。

另外多框架中的元素该怎么操作?

求大神指点,谢谢!
搜索更多相关主题的帖子: 元素 网页 
2013-06-15 20:17
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30047
注 册:2008-10-15
收藏
得分:0 
webborswer 在加载多框架网页时,每加载完一个 框架 ,就会触发一个页面载入完成的 事件。
当整个框架加载完成后,还会触发这个事件。

在这个事件里,会传入 刚触发 这个事件的 框架对象和框架URL 。判断这个 URL 是不是 目标网页来 判断是不是整个网页载入完成。
如果在 某个框架里的网页操作,判断是不是这个 框架 的URL ,然后这个 框架对象 进行操作就可以了,不必 通过 WEBBORSER 再找框架名 再去操作。

授人于鱼,不如授人于渔
早已停用QQ了
2013-06-16 10:20
狂奔小强
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-2-16
收藏
得分:0 
回复 2楼 风吹过b
程序代码:
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
    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 = "http://XXX.XXX.XXX/ssp/eva/self.jsp?right_no=07010003" Then
                Set getFrames = pBrowser
                Exit Function
            End If
          End If
       Loop
       Set pEnumerator = Nothing
    End If
End Function

Private Sub webbrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  Debug.Print URL
  If URL = "http://XXX.XXX.XXX/ssp/eva/self.jsp?right_no=07010003" Then
    getFrames(WebBrowser1).Document.All("self_eva_score_0").Value = "1"     
    getFrames(WebBrowser1).Document.getElementById("savebutton").Click
  End If
End Sub
非常感谢!!
在上面这段代码里面,我尝试对一个框架内的元素进行操作,可是每当执行到
getFrames(WebBrowser1).Document.All("self_eva_score_0").Value = "1"
就出现错误91,但页面已经打开了呀,不应该会是因为未载入完全而引起的吧。
2013-06-16 18:23
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30047
注 册:2008-10-15
收藏
得分:20 
你直接对 pDisp  操作 试试。

授人于鱼,不如授人于渔
早已停用QQ了
2013-06-17 08:16
快速回复:关于在Webbroswer中多框架页面的操作问题
数据加载中...
 
   



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

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