使用后退按钮后,Apple设备浏览器无法滚动

时间:2016-04-13 12:56:23

标签: javascript jquery ios scroll

我在运行iOS 9.3.1的iPad 2和iPhone 6上有一些奇怪的行为。

在我的网站上有一个<div>,位于relative,其高度固定,由window.load()(jQuery)上的javascript计算。 在这个div中,我的可滚动内容。

该网站在Joomla 3.5上运行,我使用了一个类别来显示一些图像作为图库的缩略图。

在普通网站上加载没有问题,点击即可正常工作。

进入图库并按下浏览器后退按钮(safari / chrome表现相同)内容不再可滚动。 更改设备方向后,从菜单中选择另一个站点或重新加载滚动工作再次正常。

在所有其他设备(Windows / Android)上,我没有任何问题。

JS代码(缩短 - 它是影响特定div的所有代码):

$(window).on('load', function () {
    wheight = $(window).outerHeight();
    innerWrap.css(
      'max-height', 
      wheight - $('#wrapper').height() - $('footer').height() - 67 + "px"
    );
});

我已经在网上搜索了iOS滚动错误,但没有任何修复似乎对我有用。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

在回去后发现我的javascript没有在.load上执行时,我专门搜索了这个执行问题。

问题在于系统的内部缓存,用于在浏览器“返回”时快速显示网站。

一个小小的javascript片段救了我:

jQuery(window).bind("pageshow", function(event) {
    if (event.originalEvent.persisted) {
       window.location.reload();
    }
});

添加此页面后,页面会进行真正的重新加载并正常呈现,并进行滚动工作!