2013-04-10 3 views
1

에서 UIWebView 님의 loadRequest 방법을 사용하여 html 템플릿을로드합니다. html 템플릿 자체에는 많은 수의 텍스트 상자가 있습니다 (예 : 20). 내가 모든 textboxes를 채운 후에 나는이 채워진 값으로 html을 원한다. 나는UIWebView의 현재 HTML 콘텐츠를 가져 옵니까?

[myWebView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"] 
//even body.outerHTML, documentElement.innerHTML won't work 

을 시도하지만 나에게 작성이 값 이전의 원시 HTML 템플릿을주고있다. 내가 어떻게 해? 나는

[myWebView stringByEvaluatingJavaScriptFromString:@"document.getElementById('name').value"] 

다음 읽고 HTML의 문자열을 교체, 자바 스크립트에 의해, 각 텍스트 상자의 내용을 읽고,이 이렇게 생각하고있다.

더 좋은 방법이 있습니까? 또는 웹 페이지의 현재 내용을 읽을 수있는 자바 스크립트 메서드가 있습니까?

답변

0

.innerHTML.outerHTML은 DOM의 업데이트 된 상태를 제공하지 않는다고 완전히 맞습니다. 당신은 자바 스크립트로 쿼리에 이미 있기 때문에

그러나, 모든 현재 입력 된 값의 목록이 포함 된 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"]'))"]; 

당신은 다음 네이티브 코드에 그것을 구문 분석 할 수 그것을 경우 그것은 NSArray 문자열로 나와야했다.

관련 문제