2013-04-10 68 views
1

我使用UIWebViewloadRequest方法從NSBundle加載html模板。 html模板本身有大量的文本框(比如20)。在我填充所有文本框後,我需要帶有這些填充值的html。我試過,獲取UIWebView的當前html內容?

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

但它是在這些值填充之前給我原始的html模板。我該怎麼做? 我想這個要做到這一點,通過讀取每個文本框的內容,由JavaScript,

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

,然後閱讀並取代HTML的字符串。

有沒有其他更好的方法來做到這一點?或者是否有任何JavaScript方法來讀取網頁的當前內容?

回答

0

你是完全正確的,.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"]'))"]; 

然後,您可以分析在您的本地代碼,如果它工作它應該出現爲字符串的NSArray