我们在 c# winforms 中使用 WebBrowser 控件,需要能够获取有关光标所在的 Url 的信息。
所以我们有一个设计模式的网页,它有多个 url,当光标在一个上时,我想调用一个返回链接 id 的方法。
谢谢
您可以使用获取当前范围内的元素,IHTMLCaret
从那里获取光标位置。IMarkupPointer
webBrowser 控件有一个 Document 属性,该属性有一个 Links 集合。每个链接都是一个 HTMLElement,其中包含您可以访问的事件。同样,我不确定您的意思是“光标”,因为在网络世界中,除非您在文本框中,否则真的没有“光标”(这是我在评论中要问的)但是你可以点击 MouseOver 事件和其他类似的东西。
例子:
foreach (HtmlElement element in this.webBrowser1.Document.Links)
{
element.MouseOver += (o, ex) =>
{
Console.WriteLine(ex.ToElement.GetAttribute("HREF"));
};
}
这将打印出鼠标所在的实际 URL。
您可以查看这篇文章 -在 C# winform 中托管 Web 浏览器组件- 它解释了执行该操作的几种方法。或者直接转到这个 -在 Windows 窗体中托管网页- 基本上你需要做的是处理 IE 的 COM WebBrowser 内的 DOM 对象的单击。您可以通过处理 C# 代码中的 Js 事件来实现这一点。
我记得这种自定义必须使用 AxSHDocVw.AxWebBrowser COM 对象而不是较新版本的 .Net Framework 中的 System.Windows.Forms.WebBrowser 类来完成。
我可以向您发送有关此的更多数据,我做了一些项目,请给我时间找到它;)。同时尝试使用这些链接。
经过!