2010-10-27 74 views
1

認爲「Firebug」,但完全來自C#。如何從WebBrowser控件HtmlDocument獲取HtmlElement的句柄或對象引用?

我有一個WebBrowser控件,我已經在TreeView中構建了一個DOM樹。我希望能夠在TreeView中的每個DOM元素與WebBrowser文檔中匹配的HtmlElement之間設置鏈接,以便當點擊樹中的節點時,文檔中的匹配元素將突出顯示。但是,當然,表面上元素訪問的唯一可用性是GetElementById(),GetElementFromPoint()和GetElementsByTagName()。當然,並非所有網頁都有與其關聯的ID或名稱。因爲在我的應用程序的用戶體驗中,用戶不會點擊WebBrowser,而是TreeView,我也無法訪問Point。

我正在試驗我現在在API中找到的各種選項。但如果有人在這方面有經驗,那將是非常好的。我似乎無法在任何地方找到網上的細節。

Thanx提前!

回答

1

個人而言,我會利用JavaScript庫(如JQuery)執行此類任務。這個庫很容易使用,並提供大量的示例/插件(http://jquery.com)。使用JQuery,您不僅可以使用ID,還可以通過CSS類,錨點類型等來獲取它們。本質上,您可以從HTML/CSS中獲取任何可以使用JQuery進行抽取的內容。

如果您想從代碼隱藏中處理HtmlElement,則必須爲其指定一個ID並指定RUNAT屬性。例如:

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

希望這有助於某種方式!

+0

我嘗試添加runat服務器以及onclick處理程序引用,但未到達我的代碼隱藏中具有該名稱的處理程序。 – 2015-09-16 20:58:37

+1

[HtmlElement](https://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlelement(v = vs.110).aspx)沒有單擊事件。但是[System.Web.UI.HtmlControls](https://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols(v = vs.110).aspx)中的某些控件會執行您可以利用點擊事件。 – 2015-09-24 19:27:56

相關問題