重新加载浏览器不会将页面重置为顶部

Reload browser does not reset page to top

本文关键字:顶部 新加载 加载 浏览器      更新时间:2023-09-26

我想当你点击刷新时,浏览器应该将你的页面重置为顶部?我使用的是js手风琴,当我刷新时,它会关闭手风琴,但不会将页面重新定位到顶部。

http://imip.rvadv.com/index3.html

好吧,正如你所看到的,它没有:)

但你可以用一些简单的jQuery:来强制它

$(document).ready(function(){
    $(this).scrollTop(0);
});

编辑:

在IE 9、FF 12和Chrome 20.0中,唯一可行的方法是:

$(document).ready(function(){
    $('html').animate({scrollTop:0}, 1);
    $('body').animate({scrollTop:0}, 1);
});

奇怪的是,当我尝试在不应用任何动画(即$('html').scrollTop(0))的情况下直接滚动元素时,它没有起作用。由于持续时间设置为1毫秒,因此用户不会注意到任何内容。

如果有人能阐明这一点,我会很高兴——为什么滚动只适用于动画?

如果以上都不起作用,请尝试此操作。这将欺骗浏览器,使其在刷新前认为它位于文档顶部。

$(window).on('beforeunload', function() {
   $(window).scrollTop(0);
});

为了方便起见,浏览器将向下滚动到重新加载之前的位置。它只对过长的页面有用。

你可以这样"修复":

window.onload = function() {document.body.scrollTop = document.documentElement.scrollTop = 0;};

根据comonpyke的最后评论和自己的测试,我推荐

$(document).ready(function(){
    $('html, body').scrollTop(0);
    $(window).on('load', function() {
    setTimeout(function(){
        $('html, body').scrollTop(0);
    }, 0);
 });
});
  • 第一个滚动顶部提前滚动
    • 文档准备好后
  • 第二次滚动顶部滚动较晚
    • 加载后事件
      • 超时后