Avatar ·

Cómo cambiar la URL en la barra de direcciones del navegador sin recargar la página

¡Hola a todos! Soy un desarrollador frontend principiante y me encontré con este problema. Tengo una aplicación de una sola página (SPA) en JavaScript puro. El usuario hace clic en enlaces y el contenido de la página cambia dinámicamente (a través de fetch o simplemente ocultando/mostrando bloques). Todo funciona perfectamente, pero hay un gran problema: la dirección en la barra del navegador permanece igual. Por ejemplo, el usuario hizo clic en "Acerca de", el contenido se cargó, pero la URL sigue siendo `https://mysite.com/`. Debido a esto: 1. El botón "Atrás" del navegador no funciona — simplemente va al sitio anterior, no a la "página" anterior dentro de mi aplicación. 2. No se puede enviar a un amigo un enlace a una sección específica — siempre verá la página principal. Intenté cambiar `window.location.href`, pero esto provoca una recarga completa de la página con todos los estilos y scripts. Aquí hay un ejemplo de mi código: ```javascript // Mal método — recarga la página function goToAbout() { window.location.href = '/about'; } // Buen método