在 UIWebView 中从 JS 返回一个 var
Posted
技术标签:
【中文标题】在 UIWebView 中从 JS 返回一个 var【英文标题】:returning a var from JS in UIWebView 【发布时间】:2012-01-16 17:04:54 【问题描述】:我对如何在 UIWebView 中执行的 js 中提取 var 的值感到很困惑,我的代码是:
NSString * js = [NSString stringWithFormat:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function getTopLeftCorner() "
"var el = document.elementFromPoint(%f, %f);"
"var pos = [el.offsetLeft, el.offsetTop];"
"var parent = el.offsetParent;"
"if (parent != el) "
"while (parent) "
"pos[0] += parent.offsetLeft;"
"pos[1] += parent.offsetTop;"
"parent = parent.offsetParent;"
""
""
"return pos;"
"\";"
"document.getElementsByTagName('head')[0].appendChild(script);"
, pt.x, pt.y];
[self stringByEvaluatingJavaScriptFromString:js];
NSString * result = [self stringByEvaluatingJavaScriptFromString:@"getTopLeftCorner()"];
NSLog(@"RESULT IS %@", result);
知道为什么结果是空的吗?
【问题讨论】:
你是在获取webViewDidFinishLoad
之后的结果吗?
【参考方案1】:
您的第一条语句NSString * js = [NSString stringWithFormat:@"var script
关闭了行尾的字符串,然后是更多C strings
。您应该从 Objective-C 编译器中得到一个语法错误。
要连接字符串,请使用[NSString stringWithFormat:@"%@/%@/%@", three, two, one];
。阅读class reference 以获得对该方法的详细说明。
【讨论】:
以上是关于在 UIWebView 中从 JS 返回一个 var的主要内容,如果未能解决你的问题,请参考以下文章
在目标 c 中从 UIWebView.scrollView 写入 PDF 文件
如何在 iOS 7 的 UIWebView 中从 JavaScript 调用 Objective-C?
如何在 iOS 8 Objective c 中的 UIWebView 中从文档中加载 png 图像