ScrollTop()总是在document.location.reload()之后返回0

时间:2013-03-27 19:37:03

标签: javascript jquery scroll reload

我有一个页面,其中包含单击时调用document.location.reload()的按钮。重新加载页面时,我得到$(document).scrollTop()。

的值
$(function(){
  alert("scrollTop:"+$(document).scrollTop()); //or $(window).scrollTop() or $('body').scrollTop()
})

在Firefox和Opera中,scrollTop()返回正确的值。 在Chrome和IE中,总是返回0。

例:(http://jsbin.com/ipepon/8) 步骤进行:

  1. 关闭提醒
  2. 将页面滚动到底部
  3. 点击按钮
  4. 对于Chrome,我知道在加载文档后会发生滚动位置恢复,并且可以在Scroll事件处理程序中获取。

    重新加载文档时,是否有任何跨浏览器方式来确定正确的scrollTop值?

    更新1

    解决方案有效,但看起来很“脏”:

    $(window).load(function(){
      setTimeout(function(){alert("scrollTop:"+$(document).scrollTop());},10);
    });
    

    (试试http://jsbin.com/ipepon/34) 设置恢复滚动位置的延迟。

0 个答案:

没有答案