Skip to content
Permalink
Browse files

fix(vue-app): use browser to handle scrolling position on page reload…

… and back-navigation from other sites (#5080)
  • Loading branch information...
ahus1 authored and pi0 committed Feb 25, 2019
1 parent e4f1d59 commit 7001312269b670e56900a2c6588050f37e8fe87c
Showing with 15 additions and 1 deletion.
  1. +15 −1 packages/vue-app/template/router.js
@@ -86,7 +86,21 @@ Vue.use(Router)
const scrollBehavior = <%= serializeFunction(router.scrollBehavior) %>
<% } else { %>
if (process.client) {
window.history.scrollRestoration = 'manual'
if ('scrollRestoration' in window.history) {
window.history.scrollRestoration = 'manual'

// reset scrollRestoration to auto when leaving page, allowing page reload
// and back-navigation from other pages to use the browser to restore the
// scrolling position.
window.addEventListener('beforeunload', () => {
window.history.scrollRestoration = 'auto'
})

// Setting scrollRestoration to manual again when returning to this page.
window.addEventListener('load', () => {
window.history.scrollRestoration = 'manual'
})
}
}
const scrollBehavior = function (to, from, savedPosition) {
// if the returned position is falsy or an empty object,

0 comments on commit 7001312

Please sign in to comment.
You can’t perform that action at this time.