Navegando a url: site.com/#locallink 'redirige' a site.com, la primera vez que se ingresa en el navegador; en otras palabras, no salta al ancla. Si simplemente vuelvo a escribir la URL (site.com/#locallink), entonces funciona como se esperaba (salta al ancla).
He definido rutas y enrutadores así, y el modo de historial como puede ver.
let router = new VueRouter({ mode: 'history', scrollBehavior: function (to, from, savedPosition) { if (to.hash) { return { selector: to.hash } } else { return { x: 0, y: 0 } } }, routes });Si tengo un enlace en otra página al mismo ancla, entonces funciona perfectamente. Solo cuando se escribe directamente en el navegador parece que no funciona: la parte # se come.
Las rutas siguen este patrón:
export const routes = [ { path: '/', name: 'home', component: require('components/prelogin/landingpage.vue'), meta: { title: 'Some title', metaTags: [ { name: 'title', content: '...' }, { name: 'description', content: 'some description here...' } ] } }, ...Hay muchas entradas, por lo que solo se muestran primero.
¿Algunas ideas? Gracias
Espero que ayude
scrollBehavior: function (to, from, savedPosition) { if (to.hash){ return new Promise((resolve, reject) => { setTimeout(() => { resolve({ selector: to.hash, behavior: 'smooth', }) }, 500) }) } else { return { x: 0, y: 0 } } }