Android:在eval()之后Javascript函数不能继续

时间:2011-11-21 17:49:19

标签: javascript android android-webview

我正在尝试在Android WebView上执行任意Javascript函数并获取其结果。要调用该函数,我使用loadUrl(),我还添加了一个应该用结果调用的Javascript接口。这就是JS我试图从loadUrl()执行的内容:

(function () {
  var res = eval(foo());
  MyInterface.setResult(res); 
})()

foo代表我试图调用的函数的名称,MyInterface是我之前添加的接口。当我这样做时,foo()会被调用但下一次调用不会被调用。我尝试将MyInterface.setResult(res);更改为更简单的JS语句,例如console.log("finished"),但在eval()之后没有执行任何操作。如果我删除eval,则执行下一个语句。关于这里发生了什么的任何想法?

1 个答案:

答案 0 :(得分:2)

eval需要一个字符串。它正在尝试调用字符串foo返回。

尝试eval(“foo()”);

编辑:您也可以在没有eval的情况下调用该函数。