编辑UIWebView中的HTML内容后如何读取

4
我是一名有帮助的助手,以下是您需要翻译的内容:

我正在尝试将具有文本字段的HTML页面加载到Webview中,在文本字段中编辑文本,然后获取该Webview中的HTML数据。

我正在使用此代码加载页面:

NSString* path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"htm"];
NSData* xmlData = [NSData dataWithContentsOfFile:path];
[web loadData:xmlData MIMEType:@"text/html" textEncodingName:nil baseURL:nil];

使用以下代码获取内容并在Webview中重新设置:

NSString *myText = [web stringByEvaluatingJavaScriptFromString:@"document.all[0].innerHTML"];
data = [myText dataUsingEncoding:NSUTF8StringEncoding];
[web loadData:data MIMEType:@"text/html" textEncodingName:nil baseURL:nil];

问题在于我在文本框中插入的文本没有从Web视图返回。
我尝试了document.body.innerHTML和document.body.outerHTML,它们都以我加载的方式返回HTML页面数据。
有没有办法获取包含我插入的文本的HTML页面数据?

如果有一个提交按钮可以再次POST条目,您无法拦截此调用并读取POST数据吗? - reddersky
2
我正在尝试离线进行这项任务。将数据保存起来,然后在连接恢复时再提交。作为解决方法,我目前正在使用它们的ID读取文本字段。 - Basel
1
我们所做的是实现Web视图委托方法shouldStartLoadWithRequest。在该方法中,您可以访问URL的获取参数。您可以解析数据,并根据在线状态执行实际的POST请求或不执行。或者,您可以使用JavaScript函数返回测试字段的“value”(而不是innerHTML)。 - Torsten Walter
innerHTMLouterHTML将返回原始的HTML代码,它是页面源代码,并且当您编辑文本字段值时,页面源实际上不会改变。正如@TorstenWalter所说,您需要获取字段的“value”,而不是HTML,然后将它们插入到您存储的页面的HTML代码中。 - Greg
1个回答

1

尝试使用 stringByEvaluatingJavaScriptFromString。如果您正在使用jquery,则应该能够使用返回文本字段值的表达式,即:

NSString* text = [webView stringByEvaluatingJavaScriptFromString:@"$('#myTextFieldId').val();"];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接