对于IE,版本低于10,我做了一个后备,所以路由器不使用pushState,而是使用hashchange。 路由器的初始化方法如下所示:
initialize: function(){
var self = this;
Backbone.history = Backbone.history || new Backbone.History({});
var root = "/";
Backbone.history.start({
pushState: Modernizr.history,
root: root,
silent: !Modernizr.history
});
// handle history for old internet explorer
if(!Modernizr.history) {
var rootLength = Backbone.history.options.root.length;
var fragment = window.location.pathname.substr(rootLength) || 'cs';
self.navigate(fragment, { trigger: true });
}
}
像这样路由器在旧IE和现代浏览器中都能正常工作,但在IE中,如果原始URL看起来像这样 - > http://example.com/lang/page,然后路由器导航到http://example.com/lang/page#lang/page。是否可以在第一次加载时导航到http://example.com#lang/page,如果它是如何实现的?非常感谢你的回答!