Estoy agregando una nueva entrada a la pila de historial de mi navegador con pushState . Ahora el evento popstate debería dispararse al presionar el botón Atrás, ¿verdad? Y al menos en dispositivos móviles, requiere algún tipo de acción del usuario antes de presionar el botón Atrás para disparar (desplazarse o tocar).
Esta es mi situación actual y funciona bien en dispositivos móviles si hago clic o me desplazo un poco antes de presionar el botón Atrás.
Ahora, si agrego un detector de eventos touchstart , touchmove o touchend , el evento popstate se activa solo si toco primero y luego presiono el botón Atrás. Pero no se dispara si solo me desplazo y no toco.
A continuación se muestran dos fragmentos de código que explican la situación.
Se muestra una alerta, solo se requiere un pequeño desplazamiento antes de presionar el botón Atrás:
window.addEventListener('popstate', () => { alert('This is test'); });La alerta no se muestra, requiere hacer clic antes de presionar el botón Atrás:
window.addEventListener('popstate', () => { alert('This is test'); }); document.addEventListener('touchmove', () => { // Empty eventListener here });¿Alguna idea de por qué no funciona solo con desplazamiento después de agregar detectores de eventos táctiles?