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上运行