如何从WebBrowser控件HtmlDocument获取HtmlElement的句柄或对象引用?

时间:2010-10-27 23:39:21

标签: c# html webbrowser-control domdocument

想想“Firebug”,但完全来自C#。

我有一个WebBrowser控件,我在TreeView中构建了一个DOM树。我希望能够在TreeView中的每个DOM元素和WebBrowser的Document中匹配的HtmlElement之间设置一个链接,这样当单击树中的节点时,Document中的匹配元素会突出显示。

但是,当然,表面上唯一可用于元素访问的是GetElementById(),GetElementFromPoint()和GetElementsByTagName()。当然,并非所有网页都有与其关联的ID或名称。因为在我的应用程序的用户体验中,用户不会单击WebBrowser,而是TreeView,我也无法访问Point。

我正在尝试我现在​​在API中找到的各种选项。但如果有人在这方面有经验,那就太好了。我似乎无法在网上找到详细信息。

Thanx提前!

2 个答案:

答案 0 :(得分:1)

就个人而言,我会利用JQuery之类的JavaScript库来执行这样的任务。该库易于使用,并提供大量示例/插件(http://jquery.com)。使用JQuery不仅可以使用ID,还可以通过CSS类,锚类型等来获取它们。基本上,您可以使用JQuery从HTML / CSS中提取任何内容。

如果您想从代码隐藏处理HtmlElement,您必须为其分配ID以及指定RUNAT属性。例如:

<textarea id="bodyText" runat="server"></textarea>

希望这在某种程度上有所帮助!

答案 1 :(得分:0)

您是否尝试过All属性?