Я использую history.replaceState()
для обновления параметров запроса моей страницы, не вызывая перезагрузки страницы, как это предлагается в этом ответе SO.
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.