2012-01-11 90 views
4

我試圖加載一個帶有文本字段的HTML頁面到webview中,編輯文本字段中的文本然後獲取該webview中的HTML數據。編輯後從UIWebView中讀取HTML內容

我使用此代碼加載頁面:

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

而這種代碼來獲取內容,並在web視圖再次設置:

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

的問題是,文本我插入的文本字段不是從webview返回的。

我試過document.body.innerHTMLdocument.body.outerHTML,它們都以我加載它的方式返回HTML頁面數據。

有無論如何獲取包含我插入文本的HTML頁面數據?

+0

如果有一個提交按鈕會回來再次發佈的條目,你不能夠攔截這調用並讀取POST數據? – reddersky 2012-01-15 16:27:33

+2

我正在嘗試離線執行此操作。保存數據,然後在連接重新聯機時提交。作爲一種解決方法,我目前正在使用其ID來閱讀文本字段。 – Basel 2012-01-17 11:36:16

+1

我們所做的是實現web視圖委託方法[shouldStartLoadWithRequest](http://developer.apple.com/library/ios/documentation/uikit/reference/UIWebViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIWebViewDelegate/web視圖:shouldStartLoadWithRequest:navigationType :)。在方法內部,您可以訪問URL的get參數。您可以解析數據,並根據在線狀態做出實際的發佈請求。或者,您可以使用JavaScript函數返回測試字段的'value'(不是innerHTML)。 – 2012-07-19 22:22:17

回答

1

嘗試使用stringByEvaluatingJavaScriptFromString。如果您在使用jQuery,你應該能夠使用返回你的文本框的值的表達式,即:

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