代码之家  ›  专栏  ›  技术社区  ›  heroxav

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

  •  4
  • heroxav  · 技术社区  · 7 年前

    我在我的网站上添加了一些页面转换。现在,每当有人单击浏览器上的后退按钮,该按钮会将他重定向到以前的站点,他在该页面上的滚动位置就会自动恢复。如果用户在上一页上向下滚动,则此行为会导致当前窗口在淡出前不到一秒钟内出现丑陋的页面跳转。

    1) 我是否能够延迟此默认浏览器行为?

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

    1 回复  |  直到 7 年前
        1
  •  16
  •   mootrichard    7 年前

    虽然这是实验性的,但您可以尝试调整 History scrollRestoration 从…起 "auto" "manual" .

    有几个 polyfills out 也有助于跨浏览器兼容性。

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