2013-10-01 5 views
0

웹 브라우저 컨트롤이있는 Windows 양식 응용 프로그램을 만들었습니다. 아래 코드를 사용할 때 스크립팅 오류가 나타나는 문제가 있습니다.HtmlWindow.Error가 스크립트 오류를 ​​잡아 내지 못함 .NET

스크립팅 오류를 발견하고이를 억제하고 파일에 기록하려고합니다. 다음은 msdn 설명서에서 사용법을 알려주는 EXACT 코드입니다.

' Hides script errors without hiding other dialog boxes. 
Private Sub SuppressScriptErrorsOnly(ByVal browser As WebBrowser) 

    ' Ensure that ScriptErrorsSuppressed is set to false. 
    browser.ScriptErrorsSuppressed = False 

    ' Handle DocumentCompleted to gain access to the Document object. 
    AddHandler browser.DocumentCompleted, _ 
     AddressOf browser_DocumentCompleted 

End Sub 

Private Sub browser_DocumentCompleted(ByVal sender As Object, _ 
    ByVal e As WebBrowserDocumentCompletedEventArgs) 

    AddHandler CType(sender, WebBrowser).Document.Window.Error, _ 
     AddressOf Window_Error 

End Sub 

Private Sub Window_Error(ByVal sender As Object, _ 
    ByVal e As HtmlElementErrorEventArgs) 

    ' Ignore the error and suppress the error dialog box. 
    e.Handled = True 

End Sub 

window.error 처리기를 첨부하기 위해 documentCompleted 이벤트가 나타날 때까지 기다립니다. 그러나 예상대로 작동하지 않습니다. 처리기가 등록되지 않은 것과 같습니다. (전체 과정을 거치고 콘솔에 로깅 할 때 문서가 완료되기 전에 스크립팅 오류가 발생한다는 것을 알게되었습니다.이 오류는 탐색 된 이벤트 중에 발생합니다.)

스크립팅 오류 창에서 확인을 클릭하면 documentCompleted 이벤트입니다. 누구든지 어떤 제안이 있습니까? 내비게이션에 핸들러를 부착하고 네비 게이팅하고 문서화 된 이벤트를 문서화하려고했습니다. 또한 까다로운 부분은 핸들러를 추가하기 전에 문서를 완전히로드해야하기 때문에 언제든지 작동하지 않는다는 것입니다. Windows 7 Professional에서 4.0, VS2012을 사용하고 있습니다.

저는이 문제를 모두 VB.NET과 C#에서 시도했습니다.

당신은 이벤트가 시작 만나지 않도록 문서 로딩이 완료되면 당신은 핸들러를 선언 여기에이 사이트 http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.scripterrorssuppressed.aspx

답변

3

에 갈 수 있습니다. 문서 렌더링이 완료되기 전에 Handler를 선언해야합니다.

선언이 : 응용 프로그램 시작 또는 어디든지 있지만, 이전과 중 탐색 완료 범위에서

AddHandler CType(sender, WebBrowser).Document.Window.Error, _ 
     AddressOf Window_Error 

.

+2

+1. 아마도 [WebBrowser.Navigated] (http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.navigated.aspx) 이벤트가이 작업을위한 적절한 장소입니다. – Noseratio

관련 문제