JavaScript: 防止浏览器在使用后退按钮时恢复滚动位置

JavaScript: Prevent browser from restoring scroll positions when using the back button

我向我的站点添加了一些页面转换。现在,只要有人点击浏览器后退按钮,就会将他重定向到他以前的站点,他在该页面上的滚动位置会自动恢复。如果用户在上一页上向下滚动,此行为会导致当前 window 在淡出前不到一秒的时间内出现难看的页面跳转。

1) 我可以延迟此默认浏览器行为吗?

2) 如果 1 不可行,我是否可以禁用默认行为并改为手动存储和恢复滚动位置?

虽然这是实验性的,但您可以尝试将 History scrollRestoration"auto" 调整为 "manual"

还有一些 polyfills out 也有助于跨浏览器的兼容性。

if ('scrollRestoration' in history) {
  // Back off, browser, I got this...
  history.scrollRestoration = 'manual';
}