1

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

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

谢谢

4

3 回答 3

2

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

于 2009-02-09T11:54:33.493 回答
0

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

例子:

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

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

于 2009-01-29T17:13:31.587 回答
0

您可以查看这篇文章 -在 C# winform 中托管 Web 浏览器组件- 它解释了执行该操作的几种方法。或者直接转到这个 -在 Windows 窗体中托管网页- 基本上你需要做的是处理 IE 的 COM WebBrowser 内的 DOM 对象的单击。您可以通过处理 C# 代码中的 Js 事件来实现这一点。

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

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

经过!

于 2009-01-29T17:13:46.987 回答