我试图弄清楚如何编写一个本地ios应用程序,该应用程序允许我将数据推送到网站的元素中。例如,如果网页有一个文本字段,我想在UIWebView的顶部放置一个滑动条,并将滑动条的结果(例如5.0)放置在文本字段中。我一直在尝试使用以下代码:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *scriptFunction = @"document.getElementById('user_field').value = 'Joe';";
    NSString *result = [webView stringByEvaluatingJavaScriptFromString:scriptFunction];
    NSLog(@"Result: %@", result);
}

我得到的结果是将“Joe”打印出来到控制台,但是它不会更新网页上的text元素。

感谢您的帮助。

最佳答案

这对我有用。在我的HTML文档中:

<form>
    First name: <input id="input1" type="text" name="fname"><br>
    Last name: <input id="input2" type="text" name="lname"><br>
            <input type="submit" value="Submit">
</form>

并在UIWebViewDelegate.webViewDidFinishLoad中使用以下iOS代码:
NSString    *scriptFunction = @"document.getElementById( 'input1' ).value = 'Joe';";
NSString    *result         = [self stringByEvaluatingJavaScriptFromString:scriptFunction];
NSLog( @"Result: %@", result );

我的UIWebView子类还实现了UIWebViewDelegate。

在模拟器上的WebView中,我看到“Joe”出现在“First name:”字段中。
我第一次尝试在getElementById()中使用'fname'。如果这样做不起作用,我将id =“input1”添加到HTML中,并在getElementById()中切换为'input1'。我还看到“结果:Joe”登录到我的控制台。

HTML(或其他代码)是否与您的有所不同?

关于ios - 与UIWebView上的HTML表单进行交互,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15167180/

10-12 12:23
查看更多