【问题标题】:Get the links id for the current cursor position in the webrowser control获取 Web 浏览器控件中当前光标位置的链接 ID
【发布时间】:2010-10-04 06:56:07
【问题描述】:

我们在 c# winforms 中使用 WebBrowser 控件,需要能够获取有关光标所在的 Url 的信息。

所以我们有一个设计模式的网页,它有多个 url,当光标在一个上时,我想调用一个返回链接 id 的方法。

谢谢

【问题讨论】:

  • 您是指鼠标悬停在链接上的时间,还是用户选择链接文本的时间?
  • 当光标位于网页浏览器控制的链接上时,无论是使用键盘还是鼠标

标签: c# hyperlink browser


【解决方案1】:

您可以使用IHTMLCaret 从那里获取光标位置,使用IMarkupPointer 您可以获取当前范围内的元素。

【讨论】:

    【解决方案2】:

    webBrowser 控件有一个 Document 属性,该属性有一个 Links 集合。每个链接都是一个 HTMLElement,其中包含您可以点击的事件。同样,我不确定您的意思是“光标”,因为在网络世界中,除非您在文本框中,否则真的没有“光标”(这是我在评论中要问的)但是你可以点击 MouseOver 事件和其他类似的东西。

    例子:

        foreach (HtmlElement element in this.webBrowser1.Document.Links)
        {
            element.MouseOver += (o, ex) =>
            {
                Console.WriteLine(ex.ToElement.GetAttribute("HREF"));
            };
        }
    

    这将打印出鼠标所在的实际 URL。

    【讨论】:

      【解决方案3】:

      您可以查看这篇文章 - Hosting a web browser component in a C# winform - 它解释了执行此操作的几种方法。或者直接去这个——Hosting a webpage inside a Windows Form——基本上你需要做的就是在IE的COM WebBrowser里面处理DOM对象的Click。您可以通过处理 C# 代码中的 Js 事件来实现这一点。

      我记得这种自定义必须使用 AxSHDocVw.AxWebBrowser COM 对象而不是较新版本的 .Net Framework 中的 System.Windows.Forms.WebBrowser 类来完成。

      我可以向您发送有关此的更多数据,我做了一些项目,请给我时间找到它;)。同时尝试使用这些链接。

      由!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-19
        • 2013-10-26
        • 2022-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多