javascript - uiwebview javascript 没有返回

标签 javascript objective-c uiwebview return-value

有奇怪的行为。在 UIWebView 中,我有一个 javacript 函数来检测元素的位置。这个:

function getPosition(element){

    var el = element;
    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;
        }
    }
    //alert(pos);
    return pos;
}

没什么特别的......但是当我这样调用函数时:

NSString *position = [browserWebView stringByEvaluatingJavaScriptFromString:@"getPosition(document.getElementById('exampleElement'));"];

我得到一个空的NSString。当我将警报插入到函数中时(现在已取消注释),我在警报中得到了正确的位置!!

当正确的返回值 pos 似乎存在时,为什么我无法取回该值并且只得到一个空字符串?

最佳答案

这对我来说相当简单,同时又完全是个谜。我不知道为什么,但 "stringByEvaluatingJavaScriptFromString:" 喜欢 javascript 结果已经类似于字符串。要修复您的代码,只需将 join() 函数添加到您的返回数组中即可:

return pos.join();

这会将数组连接成单个字符串,并且它将作为 NSString 传递,没有问题。

我认为警报起作用的原因是它不会破坏以类似方式显示数据的网站。

关于javascript - uiwebview javascript 没有返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12625758/

相关文章:

ios - 用于在页面上显示的 UIPageViewControlerDataSource 和 UiWebView

javascript - 数组无法正常工作,输出显示奇怪

ios - NSURLConnection的困惑sendAsynchronous:request:queue:completionHandler和sendSynchronousRequest:returningResponse:error:不起作用

ios - Interface Builder 中的 UIScrollView 不工作

javascript - 将第 1 页的值保存到第 2 页 - uiWebView

javascript - 在 UIWebView 中禁用图像选择

javascript - 将日期和时间格式化为 DTG

javascript - 如何拆分和重建字符串?

javascript - 如何将带有 "$"字段的 JSON 对象插入 Meteor 集合中?

ios - CoreData 临时关系示例