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