我已经成功使用 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());
});
}
});
请帮我解决这个问题。
最佳答案
我认为问题在于您的 JavaScript 代码应该是 self invoking function .
尝试将函数重写为如下内容:
(function() {
var i = 1;
return i;
})()
console.log((function() {
var i = 1;
return i;
})());
从上面的代码片段可以看出,这段代码实际上返回了一个值。您可以像这样在 C# 中使用此 JavaScript:
int idx = 1;
chromeBrowser.EvaluateScriptAsync(
string.Format(@"
(function() {{
var i = {0};
return i;
}})()
", idx)
).ContinueWith(x =>
...
关于javascript - 无法从 Javascript 获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43732567/