js刷新页面后页面位置

用js的window.location.href 刷新页面之后,希望页面固定在刷新页面前的位置,而不是回到页首,应该怎么办?

阅读 6.9k
5 个回答

这个问题的核心在于如何跨页面传值,刷新相当于跨页面了,常用的就那么几种,window.name, cookie, localStorage, location.hash .....

实现思路:

可以实时监听onscroll事件,获得实时的页面高度,然后缓存起来,或者监听页面关闭事件onbeforeunload,获取当前的scrollTop,这个事件可能有兼容性问题。
当页面加载完成后,从之前缓存的地方读取出数据,再scroll滚动到那个地方去。

个人建议,
页面滚动的时候绑定一个事件监听,将当前页面的url和滚动距离写入 localStorage或者cookie,
进入页面的时候从localStorage或者cookie取出当前url对应的滚动距离,如果有,滚动到具体位置,如果没有。不滚动

同意2楼说法,不过个人认为用sessionstorage会好点,关闭浏览器则过期

为什么不用 window.location.reload() 呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题