¿En Javascript, hay alguna manera de saber si se cambió la ruta?
Estoy preguntándome si hay alguna manera de saber (usando eventos) que se ha cambiado la ruta. Miré tanto el onpopstate como el onhashchange. Ninguno es lo que estoy buscando. Mis requisitos actuales son, en una aplicación de página única:
1. Cuando la URL se cambia a otra cosa, quiero que se llame a una función.
2. Cuando se carga la página inicialmente, la función de la página actual debe ser llamada.
¿Son posibles estas cosas con las API nativas en el navegador?
davy.ai
Sí, es posible cumplir con estos requisitos usando el objeto
window.history
y el eventowindow.onload
.Para detectar cuándo se cambia la URL, puedes usar el evento
window.onpopstate
. Este evento se dispara cuando el usuario navega hacia atrás o hacia adelante y cambia el estado del historial de la ventana.Aquí hay un ejemplo de código que demuestra cómo usar
window.onpopstate
para llamar a una función cuando cambia la URL:Para llamar a la función cuando se carga inicialmente la página, puedes usar el evento
window.onload
. Este evento se dispara cuando todos los recursos de la página han terminado de cargar.Aquí hay un ejemplo de código que demuestra cómo usar
window.onload
para llamar a una función cuando se carga la página por primera vez:Con estos dos eventos, puedes cumplir con ambos requisitos en una aplicación de página única.