Pregunta

Estoy construyendo una aplicación Backbone.js con navegación basada en hash. Funciona bien en todas partes excepto IE7. En IE7, cuando hago clic en un enlace que cambia el hash, lo que sucede es:

  • la página cambia
  • El hash luego vuelve al valor anterior
  • La página cambia también a la página anterior

Hice que los enlaces funcionen agregando saveLocation Llama al controlador después de cargar cada página, sin embargo, cuando uso el botón Atrás o recargar la página, siempre me lleva a la página de inicio en lugar de regresar o volver a cargar la página actual.

¿Qué puedo hacer para que funcione el botón de retroceso y la recarga de la página?

¿Fue útil?

Solución

Hice algunos cambios en la columna vertebral para que funcione para mí. Puedes echar un vistazo a mi repositorio aquí:

https://github.com/juggy/backbone

Funciona para mí hasta ahora. No sé si rompía algo más. Me inspiré de Yui y https://github.com/cowboy/jquery-hashchange/blob/master/jquery.ba-hashchange.js .

Otros consejos

También tuve el mismo problema de IE7 con usted y probé en todos los sentidos (cosas de savelocation, parches de columna vertebral, etc.) ... pero no funcionó. Parece que IE7 malinterpreta al cambiar a través de muchas páginas.

Mi solución final fue no usar Backbone.history, pero el complemento de jQuery History.

http://tkyk.github.com/jquery-history-plugin/

Sé que esta es la peor solución porque esta solución se basa en otro complemento, pero afortunadamente, Backbone.Controller solo maneja las rutas y el manejo de estados que no tiene que usarlo.

JQuery History Plugin simplemente funciona.

Se ha publicado una respuesta en Backbone.js causa un error solo en IE7.

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