2013-03-01 40 views
2

我想弄清楚如何编写一个本机ios应用程序,它允许我将数据推送到网站的元素。例如,如果网页有一个文本字段,我想在UIWebView的顶部放置一个滑块,并将滑块条的结果(例如5.0)放置在文本字段中。我一直在尝试用下面的代码做:与UIWebView上的HTML表单的交互

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

我得到的结果打印出“乔”到控制台,但它不更新网页上的文本元素。

谢谢你的帮助。

回答

0

这对我有效。有了这个我的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> 

而与此iOS的代码UIWebViewDelegate.webViewDidFinishLoad:

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”。我还看到“结果:乔”登录到我的控制台。

我的HTML(或其他代码)与您的有什么不同吗?

+0

我在Obj-C代码中看不到任何区别,但在HTML中,我试图将数据推入文本字段,该字段是表格中的数据单元格。 – FlatPenguin 2013-03-04 21:51:37

+1

问题修复。对于文本字段的标签,我具有与文本字段相同的标识。一旦我让它们变得独特,它就起作用 – FlatPenguin 2013-03-06 18:23:30