Javascript 是否获取UIWebView的当前html内容?
我使用Javascript 是否获取UIWebView的当前html内容?,javascript,ios,uiwebview,Javascript,Ios,Uiwebview,我使用UIWebView的loadRequest方法从NSBundle加载html模板。html模板本身有大量的文本框(比如20个)。在我填充所有文本框之后,我希望html中包含这些填充值。我试过了 [myWebView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"] //even body.outerHTML, documentElement.innerHTML won't work 但它在填充这些值之前给
UIWebView
的loadRequest
方法从NSBundle
加载html模板。html模板本身有大量的文本框(比如20个)。在我填充所有文本框之后,我希望html中包含这些填充值。我试过了
[myWebView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"]
//even body.outerHTML, documentElement.innerHTML won't work
但它在填充这些值之前给了我原始的html模板。我怎么做?
我想这样做,通过读取每个文本框的内容,通过javascript
[myWebView stringByEvaluatingJavaScriptFromString:@"document.getElementById('name').value"]
然后读取并替换html的字符串
还有其他更好的方法吗?或者是否有任何javascript方法来读取网页的当前内容?您完全正确,
.innerHTML
和.outerHTML
不会向您提供DOM的更新状态
但是,由于您已经开始使用Javascript进行查询,因此可以创建一个JSON字符串,其中包含当前输入的所有值的列表:
NSString *jsonString = [myWebView stringByEvaluatingJavaScriptFromString:@"(function(fields) { var O=[]; for(var i=0; i<fields.length;i++) {O.push(fields[i].value);} return JSON.stringify(O); })(document.querySelectorAll('input[type="text"]'))"];
NSString*jsonString=[myWebView stringByEvaluatingJavaScriptFromString:@](函数(字段){var O=[];for(var i=0;i