2014-06-20 6 views
1

.Net winforms 응용 프로그램에서이 모든 작업을 수행하고 있습니다.Awesomium.WebControl에서 HtmlDocument를 얻는 방법

저는 문서 속성이있는 IE WebControl을 사용하는 데 익숙합니다. 아주 간단합니다.

이제는 Awesomium.WebControl을 사용하고 있으며 일부 DOM 작업을 수행 할 수 있도록 기본 문서를 얻으려고합니다.

하지만 어떻게 할 수 있는지 알 수 없습니다. Google에서이를 수행하는 방법에 대한 기사를 찾을 수 없습니까?

누군가 WebControl로 시작하고 모든 DOM 메소드가있는 객체로 끝나는 작업 코드를 게시 할 수 있습니까? 나는 dom 컬렉션과 물건들을 통해 갈 수있는 한 그것이 어떤 클래스인지는 신경 쓰지 않는다.

나는 닷넷과 자바 스크립트가 아닌 내 작업을 선호한다. 하지만 최후의 수단으로, 나는 효과가있는 것을 취할 것입니다.

감사합니다.

답변

2

Awesomium WebControl에서 HTML 문서에 액세스하려면 JavaScript getElementsByTagName을 실행할 수 있습니다. 이것은 우리가 그것을 할 방법은 다음과 같습니다

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

예를 들어, 당신은 WebControl.DocumentReady 이벤트에 대한 핸들러에서이 코드를 배치 할 수 있습니다. 그렇지 않으면 JavaScript를 실행하기 전에 WebControl1.IsDocumentReady = True에 대한 검사가 필요합니다.

우리는 다음 HTMLDocument의에이 HTML 문자열을 구문 분석 HTMLAgilityPack를 사용

Dim doc As New HtmlDocument 
doc.LoadHtml(html) 

를 잘하면 당신은 당신이 필요로하는 모든 작업을 수행 할 수있는!

+0

감사합니다. ExecuteJavascriptWithResult에 의해 반환 된 HTML이 post-javascript dom 조작인지 또는 웹 페이지의 원래 변경되지 않은 코드인지 알 수 있습니까? – toddmo

+0

페이지의 현재 상태를 반환합니다. 그래서,'DocumentReady' 이벤트가 발생한 후에 그것을하면, post-JavaScript dom 조작이 될 것입니다. – ajphall

+0

모든 종류의 비동기 콜백이 완료되기 전에 DocumentReady가 호출된다는 점을 제외하면이 종류의 작동. 이것들이 언제 완료되었는지 알 수있는 방법이 있습니까? –