Полностью отключить хэши Backbone.js, но сохранить pushState в истории? - PullRequest
3 голосов
/ 03 марта 2012

Я хотел бы использовать фантастическую систему маршрутизации Backbone, но я бы не хотел иметь какой-либо поддержки хэша для старых браузеров. Можно ли полностью отключить хэши при использовании pushState в Backbone.History?

Ответы [ 2 ]

7 голосов
/ 05 ноября 2012

Это не задокументировано на странице backbone.js, но я нашел это в аннотированном источнике. Если вы передадите hashChange false в Backbone.history.start(), магистраль не будет использовать запасной вариант хеш-функции.

EG:

Backbone.history.start({hashChange:false, pushState:true})

Есть много веских причин для поддержки pushState и не прибегайте к использованию хэшей, в то время как все еще поддерживает старые браузеры (браузер перейдет на новый URL и перезагрузится вместо обновления с помощью ajax) .

2 голосов
/ 03 марта 2012

Нет встроенной поддержки для этого, если для вашего приложения важно, чтобы оно не работало в старых браузерах, вы можете изменить свою версию Backbone. Вы можете просто добавить что-то вроде следующего в начале вашей функции DomReady:

if (window.history && window.history.pushState) {
     // main script
} else {
     alert("Your browser doesn't support push state and I don't want backwards compatibility");
     window.location('http://away.from.here');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...