我试图弄清楚如何编写一个本地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/