2013-05-29 25 views
5

Dopo aver utilizzato il controllo standard WinForms WebBrowser in passato, sono riuscito a ottenere OLECMDID_SHOWSCRIPTERROR notifications ogni volta che si verifica un errore di script all'interno della pagina attualmente caricata del controllo del browser Web ospitato.E 'possibile ottenere notifed quando Chromium Embedded in hosting ha un errore JavaScript?

Ora sto passando a utilizzare Chromium Embedded (tramite il numero CefSharp .NET wrapper) e cercare qualcosa di simile.

Potrei pensare a injecting some JavaScript code, ma mi piacerebbe davvero avere una soluzione che non richiede affatto di modificare l'HTML.

La mia domanda:

E 'in qualche modo possibile che il cromo embedded notifica mia applicazione quando si verifica un errore di JavaScript nella pagina caricata corrente?

(io sono anche asking this in the CefSharp group formica pensare che questo potrebbe essere indipendente in modo da chiedere qui su Stack Overflow, troppo)

Update 1:

vedo che ci sembra essere un OnUncaughtException function che al momento sembra non essere implementato da CefSharp. Non sono sicuro se si tratta di errori JavaScript o errori CEF.

risposta

5

Anche se non ti dà la specificità di sapere esplicitamente quando qualcosa è un errore, puoi associarlo all'evento ConsoleMessage. Io uso questo in collaborazione con Log4Net per tenere traccia di tutti i messaggi della console da cromo, che comprende errori più javascript:

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

L'evento ConsoleMessage non viene sollevata per errori, almeno non tutti. Prova ad agganciare window.onerror per canalizzare prima i messaggi sulla console. – Ziv

+0

Nella mia app Angolare sto aggiungendo un '$ httpProvider.interceptors' per registrare le chiamate fallite in modo che' ConsoleMessage' riceverà – Daryn

+0

Qual è l'evento ConsoleMessage generato per allora? –