阻止在没有哈希的情况下刷新时自动滚动浏览器

Prevent automatic browser scroll on refresh without hash

本文关键字:刷新 浏览器 滚动 情况下 哈希      更新时间:2023-09-26

与我的问题类似,有没有任何方法可以防止在没有哈希/锚点的情况下自动滚动。那篇文章中描述的方法围绕着检查是否存在散列展开。

有没有办法知道浏览器是否有滚动点,或者页面是否正在刷新或刚刚访问。

如果我理解得对,localStoragesessionStorage可能会有所帮助。

如果页面被重新加载(监听beforeunloadunload),只需缓存当前滚动偏移量,然后在页面加载时恢复:

var $window = $(window).on({
  beforeunload: function() {
    window.sessionStorage.scrollLeft = $window.scrollLeft()
    window.sessionStorage.scrollTop = $window.scrollTop()
  },
  load: function() {
    $window.scrollLeft(window.sessionStorage.scrollLeft)
    $window.scrollTop(window.sessionStorage.scrollTop)
  }
})