2012-03-12 113 views
0

我是新來的UIWebView,特別是stringByEvaluatingJavaScriptFromString方法。 在我的layoutSubviews中,我打電話給我的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是什麼意思?實際上在兩個不同的子視圖上調用了兩個字符串。 – Change 2012-03-12 22:17:29

+0

這意味着'document.body.offsetHeight'提供的值可能已經改變。如果NSLog()顯示正確的值,那麼你的'stringByEvaluatingJavascriptFromString'方法**是**工作,你的問題依賴於'self.body'的定位。 – Tim 2012-03-12 22:20:07

+0

我相信身體被正確定位,因爲它在iOS 4中正常工作,它在iOS 5中不起作用。 – Change 2012-03-12 22:31:47

相關問題