Использование навигации на основе Hash Backbone.js в IE7
-
24-10-2019 - |
Вопрос
Я строю приложение Backbone.js с хэш -навигацией. Это работает нормально везде, кроме IE7. В IE7, когда я нажимаю на ссылку, которая меняет хэш, что происходит:
- страница меняется
- Затем хэш возвращается к предыдущему значению
- Страница также меняется на предыдущую страницу
Я заставил ссылки работать, добавив saveLocation
Вызовы контроллеру после загрузки каждой страницы, однако, когда я использую кнопку «Назад» или перезагрузить страницу, она всегда ведет меня на домашнюю страницу вместо того, чтобы возвращаться или перезагрузить текущую страницу.
Что я могу сделать, чтобы сделать обратную кнопку и перезагрузку страницы?
Решение
Я внес несколько изменений в основу, чтобы заставить его работать для меня. Вы можете взглянуть на мое репо:
https://github.com/juggy/backbone
До сих пор работает для меня. Я не знаю, если я сломал что -нибудь еще. Я вдохновил себя на Юи и https://github.com/cowboy/jquery-hashchange/blob/master/jquery.ba-hashchange.js .
Другие советы
У меня также была такая же проблема IE7 с вами, и я пробовал во всех отношениях (Savelocation Things, Backbone Patches и т. Д.) ... но это не сработало. Кажется, IE7 неправильно понимает при переходе через много страниц.
Моим окончательным решением было не использовать Backbone. History, а плагин истории jQuery.
http://tkyk.github.com/jquery-history-lugin/
Я знаю, что это худший обходной путь, потому что это решение опирается на другой плагин, но, к счастью, Backbone.controller просто обрабатывает маршруты и обработку состояния, которые вам не нужно использовать.
Плагин истории jQuery просто работает.
Ответ был опубликован в Backbone.js вызвал ошибку только в IE7.