我想弄清楚如何编写一个本机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'打印到控制台,但它不会更新网页上的文本元素。
感谢您的帮助。
答案 0 :(得分: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>
使用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”。我也看到“结果:乔”登录到我的控制台。
HTML(或其他代码)中的内容与您的不同吗?