首页 > 解决方案 > 单击浏览器后退按钮时忽略滚动事件

问题描述

在我的网站中,列表页面加载表格行中的所有数据。当用户滚动到页面底部(无限滚动)时,它会继续加载。这工作正常。用户可以单击行中的链接并登陆子域的另一个页面。当用户单击返回按钮以列出页面时,它会触发滚动事件并加载数据。有时滚动事件触发了几次(比如发生 3 到 5 个 api 调用)

网站是用 Vuejs 构建的。我尝试了一些建议window.onpopstate,例如 vuejs 的导航守卫。window.onpopstate不起作用。VuejsbeforeRouteEnter没有帮助。因为即使在 中捕获标志之前beforeRouteEnter,滚动事件也会触发。

有什么方法可以阻止后退按钮单击触发的滚动事件?

标签: javascriptbrowservuejs2

解决方案


这可能是您正在寻找的:

if ( 'scrollRestoration' in history ) {
  history.scrollRestoration = 'manual';
}

推荐阅读