2012-01-11 5 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]; 

そして、このコードはコンテンツを取得し、WebViewの中で再びそれを設定するには:

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うsubmitボタンがある場合、あなたはこれを傍受することができませんPOSTデータを呼び出して読み込みますか? – reddersky

+2

私はこれをオフラインにしようとしています。データを保存し、接続が再びオンラインに戻ったときに送信します。回避策として、私は現在、IDを使ってテキストフィールドを読んでいます。 – Basel

+1

私たちは、Webビューの委譲メソッド[shouldStartLoadWithRequest](http://developer.apple.com/library/ios/documentation/uikit/reference/UIWebViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm)を実装しました。/UIWebViewDelegate/webView:shouldStartLoadWithRequest:navigationType :)。メソッド内では、URLのパラメータを取得するためのアクセス権があります。あなたはデータを解析することができ、オンライン状態に基づいて実際の投稿要求を行うかどうかを決定します。代わりに、JavaScript関数を使ってテストフィールドの 'value'(innerHTMLではなく)を返すこともできます。 –

答えて

1

stringByEvaluatingJavaScriptFromStringを試してみてください。あなたはjqueryのを使用している場合は、つまり、あなたのテキストフィールドの値を返す式を使用することができるはずです。

NSString* text = [webView stringByEvaluatingJavaScriptFromString:@"$('#myTextFieldId').val();"]; 
関連する問題