2013-05-29 2 views
5

과거에 표준 WinForms WebBrowser 컨트롤을 사용하여 호스트 된 웹 브라우저 컨트롤의 현재로드 된 페이지에서 스크립트 오류가 발생할 때마다 OLECMDID_SHOWSCRIPTERROR notifications을 얻을 수있었습니다.호스트 된 Chromium Embedded에 JavaScript 오류가있을 때 알림을받을 수 있습니까?

이제 Chromium Embedded (CefSharp .NET wrapper 통해)을 사용하고 비슷한 것을 찾으십시오.

나는 injecting some JavaScript code을 생각할 수 있지만 실제로 HTML을 변경하지 않아도되는 솔루션을 갖고 싶어합니다.

내 질문 : 자바 스크립트 오류가 현재로드 된 페이지에서 발생하는 경우

은 어떻게 든 가능 크롬이 포함 된 것을 내 응용 프로그램을 통지?

는 (나는 asking this in the CefSharp group 개미이 너무 너무 스택 오버플로에 여기 물어 독립 될 수 있다는 생각도 해요)

업데이트 1 :

내가 될 것 같습니다 것을 볼 OnUncaughtException function 현재 CefSharp에 의해 구현되지 않은 것으로 보입니다. 하지만 자바 스크립트 오류 또는 CEF 오류에 관한 것인지 여부는 알 수 없습니다.

답변

5

오류가 발생하면 명시 적으로 알 수는 없지만 ConsoleMessage 이벤트에 바인딩 할 수 있습니다. 나는 대부분의 자바 스크립트 오류를 ​​포함 크롬에서 모든 콘솔 메시지를 추적 할 Log4Net와 함께이 사용

var webView = new WebView(startUrl, browserSettings); 
webView.ConsoleMessage += (sender, args) => 
             { 
           log.Debug(string.Format("Webview {0}({1}): {2}", 
                    args.Source, 
                    args.Line, 
                    args.Message)) 
             }; 
+2

ConsoleMessage 이벤트, 오류가 발생하지 않습니다 적어도 그들 모두. 먼저 메시지를 콘솔에 파이프하려면 window.onerror를 연결하십시오. – Ziv

+0

내 Angular app에서'ConsoleMessage'가 – Daryn

+0

을 수신하는 방식으로 실패한 호출을 기록하기 위해'$ httpProvider.interceptors'를 추가했습니다. 그때 ConsoleMessage 이벤트는 무엇입니까? –