2009-01-29 46 views
1

我们在c#winforms中使用WebBrowser控件,并且需要能够获取有关游标所在的Url的信息。获取webrowser控件中当前光标位置的链接ID

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

谢谢

+0

您是指鼠标悬停在链接上,还是当用户选择链接文本? – BFree 2009-01-29 16:38:46

回答

2

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

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,该鼠标已经结束。

0

你可以看看这篇文章 - Hosting a web browser component in a C# winform - 它解释了几种执行该方法的方法。或者直接转到这个 - Hosting a webpage inside a Windows Form - 基本上你需要做的是处理IE的COM WebBrowser内DOM对象的点击。通过处理C#代码中的Js事件来实现这一点。

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

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

由!