7

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

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

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

我的问题:

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

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

更新1:

我看到似乎有一个OnUncaughtException功能目前似乎没有被 CefSharp 实现。不过,不确定这是关于 JavaScript 错误还是 CEF 错误。

4

1 回答 1

6

虽然它没有让您明确知道何时出现错误,但您可以绑定到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))
                                         };
于 2014-01-09T22:16:34.483 回答