有什么方法可以捕获c#程序中cefsharp中的javascript引发的错误?

时间:2019-07-23 23:05:58

标签: javascript c# cefsharp

例如,假设我正在使用ExecuteJavaScriptAsync(..)方法通过cefSharp运行脚本,并且在运行脚本时抛出错误,如何检测到它,然后将其捕获到我的c#程序中?

1 个答案:

答案 0 :(得分:3)

如果需要评估返回值的代码,请使用Task EvaluateScriptAsync(string script,TimeSpan?timeout)方法。 Javascript代码是异步执行的,因此使用.Net Task类返回响应,该响应包含错误消息,结果和成功(布尔值)标志。

// Get Document Height
var task = frame.EvaluateScriptAsync("(function() { var body = document.body, html = document.documentElement; return  Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ); })();", null);

task.ContinueWith(t =>
{
    if (!t.IsFaulted)
    {
        var response = t.Result;
        EvaluateJavaScriptResult = response.Success ? (response.Result ?? "null") : response.Message;
    }
}, TaskScheduler.FromCurrentSynchronizationContext());