es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible cumplir con estos requisitos usando el objeto window.history y el evento window.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:

    window.onpopstate = function (event) {
      // llama a tu función aquí
      console.log('La URL ha cambiado');
    };
    

    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:

    window.onload = function () {
      // llama a tu función aquí
      console.log('Página cargada');
    };
    

    Con estos dos eventos, puedes cumplir con ambos requisitos en una aplicación de página única.

Comments are closed.