2010-03-26 5 views
0

webbrowser.DocumentText에 HTML 문자열 값을 설정하고 있습니다. 문제는 때로는 효과가 있고 때로는 멈추어 서 문서 작성 이벤트를 거치지 않는 경우입니다. 무엇이 문제일까요? C#의 WebBrowser 컨트롤 이상한 동작

은 .. 최대한 빨리,

감사합니다,

Jepe

+4

은 당신이에 DocumentText 샘플을해야합니까 우리를 위해 문제의 원인? – Axarydax

+0

그리고 문제를 일으키는 코드를 보여줄 수 있습니까? "끊다"는 정확히 어떻게 보이나요? –

+0

샘플 문서 텍스트를 게시 할 수 없지만 javascript 및 css를 사용하면 기본 html 일뿐입니다. 문서 텍스트를 설정할 때 아무 일도 일어나지 않으며 문서 작성은 결코 실행되지 않습니다. documenttext에서 html로 렌더링하면 문제가 발생할 수 있습니까? –

답변

1

그냥 생각을 회신 해 주시기 바랍니다 : 모든 웹 'dynam-주의로 완전히 '요즘, 페이지는 정말 결코' -로드 된 상태. DocumentComplete 다음에 페이지의 OnLoad 이벤트가 발생하면 해당 이벤트에 배치 된 모든 스크립트가 실행되고 자바 스크립트 타이머를 사용하여 일부 리소스의 다운로드/업로드 또는 AJAX 등을 사용하는 페이지의 변경을 시작할 수 있습니다.

AJAX 호출로 WebBrowser 컨트롤에 모든 종류의 보이지 않는 문제가 발생할 수 있다고 생각합니다. 왜냐하면 AJAX는 페이지를로드하는 동안 여러 개의 Navigating() 이벤트를 발생시킬 수 있기 때문입니다. 그런 이유로 앱에 해당 페이지에서 복수 DocumentCompleted 이벤트가 발생합니다.

가능한 해결책은 페이지 변경 사항을 모니터링하고 변경되었을 가능성이있는 항목을 찾아내는 것입니다. 이렇게하려면 Notify 방법을 조사해야 할 수도 있습니다. 변화가 관련 이있는 마크 업 컨테이너의 컨텐츠에 발생시

는 MSHTML에 의해 호출된다.

Thisthis 논의는 다음과 같은 것을 함께 올라오고 도움이 될 수

HtmlElement target = _webBrowser.Document.GetElementById("somedivthatwillbepopulatedbytheajaxrequest"); 

if (target != null) 
{ 
    target.AttachEventHandler("onpropertychange", new EventHandler(handler)); 
}