过去使用过标准的WinForms WebBrowser
控件,只要在托管的Web浏览器控件的当前加载页面内发生脚本错误,我就能获得OLECMDID_SHOWSCRIPTERROR
notifications。
现在我转而使用Chromium Embedded(通过CefSharp .NET wrapper)并寻找类似的内容。
我能想到injecting some JavaScript code,但我真的很想拥有一个不需要改变HTML的解决方案。
我的问题:
在当前加载的页面中发生JavaScript错误时,Chromium Embedded是否有可能通知我的应用程序?
(我也是asking this in the CefSharp group蚂蚁认为这可能是独立的,所以在Stack Overflow上也可以这么做了)
更新1:
我看到CefSharp似乎没有实现OnUncaughtException
function。但不确定这是关于JavaScript错误还是CEF错误。
答案 0 :(得分: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))
};