2014-06-20 56 views
1

我在.Net winforms應用程序中完成了所有這些工作。如何從Awesomium.WebControl獲取HtmlDocument

我習慣於使用只具有文檔屬性的IE WebControl。很簡單。

現在我正在使用Awesomium.WebControl,我正在試圖獲取底層文檔,以便我可以執行一些DOM工作。

但我看不出如何去了解它。 我也不能找到任何關於如何在Google中執行此操作的文章。

有人可以發佈一些工作代碼,以WebControl開頭,並以具有所有DOM方法的對象結束嗎?我不在乎它是什麼類,只要它讓我通過DOM集合和東西。

我更喜歡在.Net中完成我的工作,而不是在javascript中完成。 但作爲最後的手段,我會採取什麼行之有效的。

謝謝!

回答

2

要訪問Awesomium WebControl中的HTML文檔,您可以執行JavaScript getElementsByTagName。這是我們如何做到這一點:

Dim html As String = WebControl1.ExecuteJavascriptWithResult("document.getElementsByTagName('html')[0].innerHTML") 

例如,你可以把這個代碼爲WebControl.DocumentReady事件的處理程序。否則,在執行JavaScript之前,您需要檢查WebControl1.IsDocumentReady = True

然後,我們用HTMLAgilityPack這個HTML字符串解析爲HTMLDocument的:

Dim doc As New HtmlDocument 
doc.LoadHtml(html) 

它希望讓你做所有你需要的工作!

+0

謝謝。你碰巧知道ExecuteJavascriptWithResult返回的html是post-javascript dom操作還是原始的未改變的網頁代碼? – toddmo

+0

它將返回頁面的當前狀態。所以,如果你在'DocumentReady'事件觸發後執行它,那麼它將是JavaScript後的dom操作。 – ajphall

+0

這類工作,除了在所有異步回調完成之前調用DocumentReady之外。有沒有辦法知道這些完成時間? –

相關問題