2
我有下面的代码,检查pushState的,并降低对hashbang下,不支持(IE9):骨干历史pushState的到HASHTAG IE9
if(Backbone.history && !Backbone.History.started) {
if(!(window.history && history.pushState)) {
Backbone.history.start({ pushState: false, silent: true});
var fragment = window.location.pathname.substr(
Backbone.history.options.root.length);
var search = window.location.search;
Backbone.history.navigate(fragment + search, { trigger: true });
}
else {
Backbone.history.start({ pushState: true });
}
}
它功能的工作原理,但该URL转化而来:
http://dev.zwoop.be/home?page=1
到
http://dev.zwoop.be/home?page=1#home?page=1
看起来丑陋。
我正在寻找一个简单的修复方法,用hashtag替换主机名后面的整个片段。
谢谢,但它给了我同样的结果。出于某种原因,它只是将已导航的内容添加为已存在的整个路径(包括片段和查询字符串)之后的哈希标签。 – Trace
现在我想到了,这种行为可能有一个合理的原因:如果一个IE9用户通过启用HTML5历史记录的浏览器向其他人发送链接(或打开相同的链接),路由器将不会考虑hashbang部分解决路线。这意味着'http://dev.zwoop.be/home?page = 1#home?page = 1'可用于非IE9浏览器,而'http://dev.zwoop.be/#home?page= 1'不会。 –
嗯好点。但是,当pushstate可用时,不应该通过用斜杠替换hashbang来克服这种行为吗?可能是 – Trace