【问题标题】:Force Page to Return to top on Reload - Javascript强制页面在重新加载时返回顶部 - Javascript
【发布时间】:2018-08-20 02:13:25
【问题描述】:

我在 vanilla JS 中遇到了一个问题,在这个网站上以略有不同的形式提出了问题,但 vanilla javascript 似乎没有答案?我希望页面在使用 vanilla JS 重新加载/刷新时出现在顶部(无需使用 scrollTop() 滚动回顶部)。

我已经检查了这些问题和相关答案:

Prevent automatic browser scroll on refresh

Force page scroll position to top at page refresh in HTML

Prevent automatic browser scroll on refresh

问题是这些问题中散布着两个 vanilla JS 答案,一个在 IE/Edge 中不起作用,另一个在 Safari 中不起作用

在 Safari 中不起作用:

window.onbeforeunload = function () {
    window.scrollTo(0,0);
};

在 IE / Edge 中不工作

history.scrollRestoration = "manual";

肯定有办法让页面在刷新/重新加载时显示在顶部?

我也不能让它在重新加载/刷新时滚动到顶部,所以任何与 scrollTop() 相关的答案都不适用。

在此先感谢

【问题讨论】:

    标签: javascript reload onbeforeunload


    【解决方案1】:

    您总是可以添加一些标志来包含这两种解决方案:

    window.onbeforeunload = function () {
        if(window.scrollTo) window.scrollTo(0,0);
    };
    

    if(history && history.scrollRestoration) history.scrollRestoration = "manual";
    

    我也不能让它在重新加载/刷新时滚动到顶部,所以任何与 scrollTop() 相关的答案都不适用。

    还有为什么?

    【讨论】:

    • 我不能使用 scrollTop(),因为有一个相对复杂的动画,当页面向后滚动时看起来很傻,因为你错过了它的开始。此外,我无法使用您的答案,因为 .onbeforeunload 属性会导致 Safari 出现不良行为 - 加载后页面向下滚动到上一点。感谢您抽出宝贵时间回答。
    • 这就是我们添加两种解决方案来补偿的原因。您也可以在.onload期间拨打电话。
    猜你喜欢
    • 2012-03-26
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    相关资源
    最近更新 更多