我有一个很大的问题。我必须将javascript函数的变量传递给objective-C变量。 这些是我的代码部分:
Javascript:
function abc(){
something...
}
目标-C:
myLabel.text = [webView stringByEvaluatingJavaScriptFromString:@"documentElement.textContent"];
javascript代码将我想要在我的Objective-C代码中使用的数字打印到视频但是没有显示,而是使用此代码:
myLabel.text = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
它传递了我想要的值和javascript函数的整个代码!
请一些建议......谢谢!
`
答案 0 :(得分:3)
你想调用这个函数,而不只是引用它:
myLabel.text = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent()"];
关键位在最后:
...documentElement.textContent()"];
// ^^
由于JavaScript函数是第一类对象,所以:
x = functionName;
... x
接收对该函数的引用。在您的情况下,由于UIWebView然后将其强制转换为字符串,您最终会在函数上调用toString
,这在大多数JavaScript实现中都会为您提供函数的代码(尽管任何标准都没有指定)。
要实际调用一个函数,你可以在它后面添加括号(如果没有你需要传递的参数,则不包含任何参数;如果你这样做,则使用参数),例如:< / p>
x = functionName();
披露:我对iOS开发,Objective-C或UIWebView
一无所知,但我能够快速找到您正在使用的stringByEvaluatingJavaScriptFromString
函数,然后通过this page进行确认@
之后的字符串需要是有效的JavaScript代码。