【问题标题】:returning a var from JS in UIWebView在 UIWebView 中从 JS 返回一个 var
【发布时间】: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之后的结果吗?

标签: iphone objective-c ios ipad uiwebview


【解决方案1】:

您的第一条语句NSString * js = [NSString stringWithFormat:@"var script 关闭了行尾的字符串,然后是更多C strings。您应该从 Objective-C 编译器中得到一个语法错误。

要连接字符串,请使用[NSString stringWithFormat:@"%@/%@/%@", three, two, one];。阅读class reference 以获得对该方法的详细说明。

【讨论】:

    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2019-11-12
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多