当托管Chromium Embedded出现JavaScript错误时,是否可以获得通知?

Uwe*_*eim 6 .net chromium winforms chromium-embedded cefsharp

在过去使用过标准的WinForms WebBrowser控件后,只要在托管的Web浏览器控件的当前加载页面内发生脚本错误,我就能收到OLECMDID_SHOWSCRIPTERROR通知.

现在我转而使用Chromium Embedded(通过CefSharp .NET包装器)并寻找类似的东西.

我可以考虑注入一些JavaScript代码,但是真的很想拥有一个不需要改变HTML的解决方案.

我的问题:

在当前加载的页面中发生JavaScript错误时,Chromium Embedded是否可能以某种方式通知我的应用程序?

(我也在CefSharp组中问这个问题,认为这可能是独立的,所以在Stack Overflow上也要这么做)

更新1:

我看到CefSharp似乎没有实现一个OnUncaughtException功能.但不确定这是关于JavaScript错误还是CEF错误.

jst*_*ick 5

虽然它没有为您提供明确知道何时出现错误的特异性,但您可以绑定到该ConsoleMessage事件.我结合使用它Log4Net来跟踪来自Chromium的所有控制台消息,其中包括大多数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))
                                         };
Run Code Online (Sandbox Code Playgroud)

  • 不会针对错误引发ConsoleMessage事件,至少不会引发所有错误.尝试挂钩window.onerror以首先将消息传递到控制台. (2认同)