w3schools scrollrestoration onpopstate mdn example ejemplo javascript ios html5 google-chrome html5-history

javascript - scrollrestoration - window location history



Historial de HTML5 API en iOS Chrome (1)

Para Chrome en iOS, el archivo history.pushState se anula con una extensión adicional, si alert(history.pushState) puede ver que no es un código nativo como lo vemos en otros navegadores

ver a continuación polifills puede ayudarle,

  1. HTML5-History-API

  2. history.js

Para fines de prueba, quiero rellenar el historial con varias entradas. Más precisamente, quiero agregar X elementos para desactivar el tipo de botón del navegador, ya que incluso si el usuario hace clic en X veces, se quedará en la misma página.

Estoy haciendo esto de la siguiente manera:

(function (){ for (var x = 0; x < 10; x++) { history.pushState(null, document.title, location.pathname); } }());

Por lo tanto, cuando se carga la página, se insertan en el historial 10 elementos de la página actual. Este enfoque funciona en todos los navegadores que admiten la API de historial, excepto Chrome en iOS.

Usando el código anterior, Chrome en iOS (7 a 10) hace algunas cosas realmente extrañas:

  • Reemplaza el título en la pestaña con la URL de la página actual (así que en lugar de mostrar "mi gran página web" en el título de la pestaña, muestra "mygreatpage.com/samplepage1"
  • Manteniendo presionado el botón Atrás para verificar las entradas, Chrome no muestra entradas adicionales adicionales: todos los demás navegadores muestran 10 entradas adicionales según lo previsto en el código anterior

Safari y todos los demás navegadores iOS hacen lo que yo quiero. ¿Qué estoy haciendo mal?