Saltar al contenido

history.pushState no activa el evento ‘popstate’

Solución:

Puede activar manualmente popstate evento en window cada vez que llamas history.pushState().

history.pushState(state, '', url);

var popStateEvent = new PopStateEvent('popstate', { state: state });
dispatchEvent(popStateEvent);

El párrafo al que hace referencia es un poco ambiguo. Al leer el ejemplo en la misma página, está claro que popstate solo se activa cuando el usuario hace clic en el botón Atrás, no cuando el script llama pushState().

Está leyendo la “página de guía” de MDN, que no pretende ser normativa.

Considere leer la “página de documentación” de MDN para WindowEventHandlers.onpopstate en lugar de:

Tenga en cuenta que solo llamar a history.pushState () o history.replaceState () no activará un evento popstate. El evento popstate solo se activa al realizar una acción del navegador como hacer clic en el botón Atrás (o llamar a history.back () en JavaScript). Y el evento solo se activa cuando el usuario navega entre dos entradas del historial para el mismo documento.

Otra forma indocumentada de desencadenar popstate es por manipulación directa de la window.location objeto.

// this also triggers popstate 
window.location.hash = "#some-new-hash"
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *