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';
}
我向我的站点添加了一些页面转换。现在,只要有人点击浏览器后退按钮,就会将他重定向到他以前的站点,他在该页面上的滚动位置会自动恢复。如果用户在上一页上向下滚动,此行为会导致当前 window 在淡出前不到一秒的时间内出现难看的页面跳转。
1) 我可以延迟此默认浏览器行为吗?
2) 如果 1 不可行,我是否可以禁用默认行为并改为手动存储和恢复滚动位置?
虽然这是实验性的,但您可以尝试将 History scrollRestoration 从 "auto"
调整为 "manual"
。
还有一些 polyfills out 也有助于跨浏览器的兼容性。
if ('scrollRestoration' in history) {
// Back off, browser, I got this...
history.scrollRestoration = 'manual';
}