【发布时间】:2020-06-11 18:16:43
【问题描述】:
我正在使用history.replaceState() 来更新我的页面的查询参数,而不会按照this SO answer 中的建议导致页面重新加载。
function setQueryParam ({ name, value }) {
const params = new URLSearchParams(window.location.search)
params.set(name, value)
history.replaceState({}, '', decodeURIComponent(`${window.location.pathname}?${params}`))
}
我还使用以下行存储用户的滚动位置:
history.scrollRestoration = 'auto'
当从一个页面导航到另一个页面时,scrollRestoration 工作正常 - 页面之间的滚动位置保持不变。但是,之后我用 setQueryParam 函数更改了查询参数,滚动恢复不再起作用。
为什么会这样?
注意:相同的代码在 Svelte/Sapper 之外也能正常工作,仅使用 HTML 和 JavaScript。
【问题讨论】:
标签: scroll navigation svelte sapper