在目标C中访问WebView元素

时间:2014-03-27 12:11:39

标签: jquery ios uiwebview

有人请帮助我,我怎样才能获得所有textFields值(带有“name”“id”) 在加载的UIWebView页面中。

或者请提供一个描述要传递的所有jQuery字符串的链接

               "stringByEvaluatingJavaScriptFromString"

方法作为参数。

2 个答案:

答案 0 :(得分:1)

以下是您应该使用的JavaScript代码:

(function(){
    var i, tf, textFields = document.getElementsByTagName("input"), result = [];
    for (i = 0; tf = textFields[i]; i++) {
        if (tf.type === "text" || tf.type === "search")
            result.push({
                "type": tf.type,
                "name": tf.name,
                "id": tf.id,
                "value": tf.value
            });
    }
    return JSON.stringify(result);
})();

您可能会发现要添加其他输入字段类型。

这是一个Objective-C代码示例:

- (void)getValuesButtonTapped:(id)sender {
    NSString *resultStr = [self.webView stringByEvaluatingJavaScriptFromString:
        @"(function(){"
            "var i, tf, textFields = document.getElementsByTagName(\"input\"), result = [];"
            "for (i = 0; tf = textFields[i]; i++) {"
                "if (tf.type === \"text\" || tf.type === \"search\")"
                    "result.push({\"type\": tf.type, \"name\": tf.name, \"id\": tf.id, \"value\": tf.value});"
            "}"
            "return JSON.stringify(result);"
        "})();"
    ];
    NSArray *result = [NSJSONSerialization JSONObjectWithData:[resultStr dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
    NSLog(@"result: %@", result);
}

enter image description here

当您点按"获取值..."按钮,您会收到以下日志消息:

result: ({
    id = "lst-ib";
    name = q;
    type = search;
    value = "hello world";
},
    {
    id = "";
    name = "";
    type = text;
    value = "";
},
    {
    id = "";
    name = "";
    type = text;
    value = "";
})

答案 1 :(得分:0)

本教程可能会有所帮助。

如何在ios上解析html: http://www.raywenderlich.com/14172/how-to-parse-html-on-ios