获取webbrowser控件中当前光标位置的链接ID

时间:2009-01-29 16:27:00

标签: c# hyperlink browser

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

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

由于

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

示例:

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

这将打印出鼠标结束的实际网址。

答案 2 :(得分:0)

您可以查看这篇文章 - 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类来完成这种自定义。

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

按照!