2012-03-12 58 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

相关问题