打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB6 获得WebBrowser加载网页中,点击的元素
在.NET中能够很容易实现private void Document_Click(Object sender, HtmlElementEventArgs e)
        {
            if (wB.Document != null)
            {
                HtmlElement elem = wB.Document.GetElementFromPoint(e.MousePosition);
                textBox1.Text = elem.InnerHtml;
            }
        }但是,进过一下午努力,在VB6.0中始终找不到办法~~再把问题说一遍:
鼠标点击网页时,返回 鼠标点击的网页元素 

解决方案 ?

  1. VB6更简单Dim WithEvents m_Doc As MSHTML.HTMLDocumentPrivate Sub Form_Load()
        Me.WebBrowser1.Navigate2 "http://www.baidu.com"
    End SubPrivate Function m_Doc_onclick() As Boolean
        Dim elem As IHTMLElement
        
        Set elem = m_Doc.parentWindow.event.srcElement
        Debug.Print "m_Doc_onclick", "当前触发事件的元素:", elem.tagName, elem.sourceIndex, elem.Id
        m_Doc_onclick = True
    End FunctionPrivate Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
        Set m_Doc = Me.WebBrowser1.Document
    End Sub
      

  2. 别忘了引用“Microsoft HTML Object Library”
      

  3. 敢问一下m_Doc是个普通的按钮吗?谢了
      

  4. Document对象也有ElementFromPoint的。可以用getCursorPos获得鼠标位置。再用ScreentoClient将鼠标位置转换成Webbrowser内的位置,而且在这一步你要想办法得到Webbrowser的句柄,会有点麻烦。然后再用ElementFromPoint就能获得鼠标处的元素。
    也可以直接用Document的ActiveElement方法得到当前活动元素。
    但是还有一点,当元素在Frame/Iframe中时,你不能简单地用这个方式得到。要特殊处理。
      


  5. 直接用Document的ActiveElement方法得到当前活动元素不是很可靠,在获取表格元素时是没有问题的,其它的元素就不行了。我试过了~
    Document对象也有ElementFromPoint,但是在VB里不能直接用。
      

  6. Document的ActiveElement方法WS的表述中:
    当文档具有焦点,而文档中的元素没有获得焦点时,ActiveElement 将返回对应于 <BODY> 标记的元素。 如果文档没有焦点,ActiveElement 将返回 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。 如果具有输入焦点的当前元素是 HTML TABLE 标记中的一个单元格 (TD),ActiveElement 将返回包含 TABLE 元素的元素。
      

  7. ActiveElement绝对不止对Table元素有效。你注意一下元素是不是在框架里,如果是在框架(Frame)里,如果是在框架里边那就不能直接用ActiveElement得到。
      

  8. 我要看看怎么获取frame里面的元素
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Delphi TWebBrowser[6] 获取网页所有链接(元素)、下拉菜单及GetElementByID返回值的有效性判定方法
VB 21.浏览器
vb是否可以使用webbrowser控件避免下载图片\声音\flash等元素
在VB中使用IE的WebBrowser控件
vb webbrowser控件详解
迄今为止最完美的VB网页采集方案(附核心代码)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服