iOS 5中的UIWebView JavaScript问题(尤其是window.pageYOffset和window.scrollTo)

时间:2011-10-16 09:31:07

标签: javascript uiwebview ios5

这个在iOS 4下运行良好的UIWebView代码在iOS 5中不再有效:

// webView is UIWebView loaded with a local PDF file
NString *s = [webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"];

无论webView的实际位置如何,s的内容始终为“0”。 和

// webPosition is the desired Y scroll position
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat: @"window.scrollTo(0, %d);", webPosition]];

有关解决方法的任何想法,以定位webView并阅读适用于iOS 5的位置?

2 个答案:

答案 0 :(得分:4)

您可以使用UIWebView的Scrollview进行导航,因为IOS5不再支持Javascript:下面的代码对我来说很好。

    [aWebView.scrollView setContentOffset:CGPointMake(x, y)];

contentOffset接受CGPoint作为参数。这里x和y是表示scrollPosition的整数值。如果您想获得webView的当前x和y坐标,下面是您可以使用的代码:

NSInteger x = aWebview.scrollView.contentOffSet.x;
NSInteger y = aWebview.scrollView.contentOffset.y;

注意: ScrollView是在IOS 5中引入的,不适用于早期的IOS版本。 Javascript函数适用于早期版本。因此,您可以检查设备版本并相应地实现代码。

答案 1 :(得分:0)

这是答案,来自Apple的MRL:

  

在iOS 5中,我们公开了UIWebView的UIScrollView。你会好起来的   关闭只是保存和恢复contentOffset而不是尝试   通过javascript执行此操作。