Pregunta

En este punto, tenemos una galería de fotos que utiliza valores hash para determinar qué imagen se muestra actualmente al usuario y para apoyar el envío de la página a un amigo y tal. Algo así como:

http: // url / photos / # photo-4

Cuando hemos cargado la imagen correspondiente después de hacer clic en el botón siguiente o anterior, cambiamos la url de acuerdo con la especificación JS 1.1 usando:

top.location.replace(url.url + hash);

Nuestro comportamiento deseado es que no se está creando ningún elemento del historial, por lo que los usuarios pueden usar el botón Atrás para salir de la galería de fotos, en lugar de usar el botón Atrás para ver las imágenes anteriores.

En IE y Firefox, el método funciona a las mil maravillas, pero Safari y Chrome crean un elemento de historial para la URL cambiada. He encontrado muchas muestras de cómo crear elementos del historial al usar el hash para navegar de esta manera, pero quiero hacerlo de la otra manera. ¿Alguna pista?

¿Fue útil?

Solución

Esto funciona como se esperaba ahora:

En Safari [5.1.7] location.replace () funciona como se esperaba - & nbsp; la URL se reemplaza, no se agrega nada a la cola del botón Atrás y no se agrega nada al menú de historial .

En Chrome [21.0.1180.82] location.replace () es un poco complicado: la URL se reemplaza y no se agrega nada a la cola del botón de retroceso, pero agrega un elemento al menú del historial .


Lo que hace que esto sea complicado es que hay dos colas de historial distintas: el menú de historial y los botones de retroceso / avance. Haga clic y mantenga presionado los botones de retroceso y avance para ver su cola y comparar con el menú del historial.

Y la cola del historial de los botones atrás / adelante está vinculada a la pestaña activa. Además, el historial de botones permanece incluso cuando borra el menú de historial, & nbsp; al menos hasta que cierre la pestaña.

Otros consejos

Parece que no hay solución en este momento.

¿Ha buscado asignar su hash usando window.location.hash = newHash en lugar de reemplazar la URL completa?

https://developer.mozilla.org/en/DOM/window.location

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top