我有一个页面,其中包含单击时调用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)步骤:
-
关闭警报
-
将页面滚动到底部
-
点击按钮
至于Chrome,我知道在加载文档后会发生滚动位置恢复,并且可以在Scroll事件处理程序中获取 .
当您重新加载文档时,是否有任何跨浏览器方式来确定正确的scrollTop值?
Update 1
有效的解决方案,但它看起来“脏”:
$(window).load(function(){
setTimeout(function(){alert("scrollTop:"+$(document).scrollTop());},10);
});
(尝试http://jsbin.com/ipepon/34)设置恢复滚动位置的延迟 .