簡體   English   中英

window.pageYOffset在iOS7中不起作用

[英]window.pageYOffset not working in iOS7

我目前有以下代碼來檢查到達頁面結尾的距離;

var untilPageEnd = $(document).height() - (window.pageYOffset + window.innerHeight);

在iOS7之前的應用程序中,這將完美地運行。 但是,現在在我的iOS7應用window.pageYOffset返回0,所有的時間。 有沒有任何已知的解決方案?

window.pageYOffset在safari瀏覽器中工作,但不在UIWebView中工作

如果在UIWebView上覆蓋UIScrollViewDelegate?

在iOS7中,您需要像這樣進行修改

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    [super scrollViewDidScroll:scrollView];
    //TO DO
    //code goes here
}

我有同樣的問題,已經放棄了iOS7下的window.pageYOffset - 自從iOS3以來,同樣的代碼對我有用!

我的解決方案:我有一個UIWebView的子類,我使用它來實現

- (void)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下工作的方式。 :/

(我的測試已經產生了一個理論,即由於iOS7中新的topLayoutGuide內容或者Apple已經重做了UIWebViews的實現方式,windows.pageYOffset現在被破壞了,你現在正在滾動UIScrollView而不是UIWebView,因此javascript無法檢測到由於滾動發生在較低級別滾動?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM