Javascript window.pageYOffset在iOS7中不工作
我目前有以下代码来检查距离页面结束还有多远Javascript window.pageYOffset在iOS7中不工作,javascript,ios,uiwebview,Javascript,Ios,Uiwebview,我目前有以下代码来检查距离页面结束还有多远 var untilPageEnd = $(document).height() - (window.pageYOffset + window.innerHeight); 在iOS7之前的应用程序中,这将非常有效。但是现在在我的iOS7应用程序窗口中,pageYOffset始终返回0。有什么已知的解决方案吗 window.pageYOffset在safari浏览器中工作,但在UIWebView中不工作我遇到了同样的问题,并且在iOS7下暂时放弃了win
var untilPageEnd = $(document).height() - (window.pageYOffset + window.innerHeight);
在iOS7之前的应用程序中,这将非常有效。但是现在在我的iOS7应用程序窗口中,pageYOffset
始终返回0。有什么已知的解决方案吗
window.pageYOffset在safari浏览器中工作,但在UIWebView中不工作我遇到了同样的问题,并且在iOS7下暂时放弃了window.pageYOffset–自iOS3以来,相同的代码一直在为我工作 我的解决方案是:我使用UIWebView的一个子类来实现
-(无效)scrollViewDidScroll:(UIScrollView*)scrollView
方法&我有
CGFloat-newOffY=scrollView.contentOffset.y+topLength
通过以下方式从包含的UIViewController设置topLength:
CGFloat topLength = 0;
CGFloat bottomLength = 0;
if([self respondsToSelector:@selector(topLayoutGuide)] && !self.isFullScreen) {
topLength = [[self topLayoutGuide] length];
bottomLength = [[self bottomLayoutGuide] length];
}
然后可以将newOffY
传递回UIWebView,以便在javascript中使用
是的,这是一个黑客程序,但这就是我现在在iOS7下如何让它工作的/
(我的测试产生了一种理论,要么window.pageYOffset因为iOS7中新的topLayoutGuide内容而被破坏,要么苹果重做了UIWebViews的实现方式,而你现在滚动的是UIScrollView而不是UIWebView&因此javascript无法检测到滚动,因为滚动发生在较低的级别l?是否覆盖UIWebView上的UIScrollViewDelegate 在iOS7中,您需要这样修改
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[super scrollViewDidScroll:scrollView];
//TO DO
//code goes here
}
修复程序似乎是调用[super scrollViewDidScroll:scrollView],如果在委托中的iOS7上运行