2012-03-12 13 views
0

私はUIWebViewを初めて使用しました。特に、stringByEvaluatingJavaScriptFromStringメソッドが新しくなりました。 私のレイアウトのサブビューでは、フレームサイズを取得するために私のwebviewを呼び出しています。UIWebView stringByEvaluatingJavaScriptFromStringがiOS 5で動作しない

[self.body setFrame:CGRectMake(10.0f,10.0f,320.0f,[[_body stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue])]; 

高さを見つけようとしますが、ビューにはスペースがたくさんありますが、テキスト文字列で正しい高さを指定していません。 上記のコードはiOS 4で完全に動作し、iOS 5では動作しません。

iOS 5で動作させるために次のような変更ができますか?

答えて

0

まず、自分自身であなたのjavascriptを評価:

NSString* result = [_body stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"]; 
NSLog(@"My JS is returning %@",result); 

が、これは正しい値を提供していることを確認します。私は、JSエンジンが4.0から5.0に変更されたので、それが異なって扱うかもしれないと信じています。

+0

はい、正しい値を提供しています。しかし、変更されたJSエンジンは4.0から5.0までの何を意味しますか?実際には2つの異なるサブビューで呼び出される2つの文字列があります。 – Change

+0

これは、 'document.body.offsetHeight'によって提供される値が変更された可能性があることを意味します。 NSLog()が正しい値を表示している場合、 'stringByEvaluatingJavascriptFromString'メソッド**は**動作しています。問題は' self.body'の位置付けに依存しています。 – Tim

+0

体が正しく配置されていると思うのは、iOS 4で正常に動作するため、iOS 5では動作しません。 – Change

関連する問題