2

我试图弄清楚如何编写一个允许我将数据推送到网站元素中的本机 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”打印到控制台的结果,但它不会更新网页上的文本元素。

感谢您的帮助。

4

1 回答 1

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(或其他代码)与您的有什么不同吗?

于 2013-03-03T02:06:06.357 回答