Javascript Awesomium.NET:System.InvalidCastException:JSValue不表示数字

Javascript Awesomium.NET:System.InvalidCastException:JSValue不表示数字,javascript,c#,awesomium,Javascript,C#,Awesomium,我们使用一些JavaScript来确定加载的WebView页面的高度,并看到一个零星错误(如标题所示) 这项工作没有问题,但是当我们呈现一些网页时,有人偶尔会看到这个错误。我有一种感觉,JS代码可能执行得太早了,但它似乎是在CompletionEvent上使用WaitOne加载FrameComplete(对于主框架)后执行的,所以我不认为是这样 你知道这是什么原因吗| 您是否检查了它返回的内容,并确保它实际上是一个int并且已执行?不幸的是,我无法在我这边重新处理该问题,因此很难调试,否则这将是

我们使用一些JavaScript来确定加载的WebView页面的高度,并看到一个零星错误(如标题所示)

这项工作没有问题,但是当我们呈现一些网页时,有人偶尔会看到这个错误。我有一种感觉,JS代码可能执行得太早了,但它似乎是在CompletionEvent上使用WaitOne加载FrameComplete(对于主框架)后执行的,所以我不认为是这样


你知道这是什么原因吗|

您是否检查了它返回的内容,并确保它实际上是一个int并且已执行?不幸的是,我无法在我这边重新处理该问题,因此很难调试,否则这将是我的第一个想法。在它周围放置一个异常处理程序,并在强制转换它之前保存从
ExecuteJavascriptWithResult
返回的值。@Bauss谢谢,我已经实现了一些更好的错误处理逻辑,以便我们了解发生了什么。似乎ExecuteJavascriptWithResult()函数返回的值无效,因为JS返回的是未定义的值。是的,一个提示。如果传递给
Math.max
的任何值未定义,则它将返回未定义。:)
 private const string PageHeightFunc = @"
 (function() {
   var bodyElmnt = document.body;
   var html = document.documentElement;
   var height = Math.max( bodyElmnt.scrollHeight, bodyElmnt.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
   return height;
 })();";

 int height = (int)webView.ExecuteJavascriptWithResult( PageHeightFunc );