无法从Javascript获取返回值

时间:2017-05-02 07:37:34

标签: javascript c# google-chrome cefsharp

我已成功使用this

但是在这种情况下我需要传递参数并使用此方法从javascript一次获取返回值。但是这段代码不起作用:

int idx=1;
chromeBrowser.EvaluateScriptAsync(
   string.Format(@"
    var i = {0};
    return i;
", idx)
).ContinueWith(x =>
{
   var response = x.Result;

   if (response.Success && response.Result != null)
   {
       this.Invoke((MethodInvoker)delegate
       {
           int atemp = (int)response.Result;
           MessageBox.Show(atemp.ToString());
       });
   }
});

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:4)

我认为问题是您的JavaScript代码应该是self invoking function

尝试将函数重写为以下内容:

func handle(textFields: [UITextField]) {
    // do your things here by accessing each textFields like : textFields[0]
}

(function() {
  var i = 1;
  return i;
})()

从上面的代码片段中可以看出,此代码实际上返回了一个值。您可以在C#中使用此JavaScript,如下所示:

console.log((function() {
  var i = 1;
  return i;
})());