有没有办法在IE9中使用HTML5历史记录API(pushState
)?
如果所有其他浏览器都有一个很棒的解决方案!
答案 0 :(得分:26)
来自回购的报价:
History.js在所有浏览器中优雅地支持HTML5历史/状态API(pushState,replaceState,onPopState)。包括对数据,标题,replaceState的持续支持。支持jQuery,MooTools和Prototype。对于HTML5浏览器,这意味着您可以直接修改URL,而无需再使用哈希。对于HTML4浏览器,它将恢复使用旧的onhashchange功能。
答案 1 :(得分:-1)
根据Ember关于历史api的文档: http://emberjs.com/api/classes/Ember.Location.html
支持历史API的浏览器将使用HistoryLocation,那些不支持hashLocation但仍支持hashchange事件的浏览器将使用HashLocation,并且在极少数情况下,不支持将使用NoneLocation。
App.Router.map(function() {
this.resource('posts', function() {
this.route('new');
});
});
App.Router.reopen({
location: 'auto'
});
这将导致支持历史记录api的现代浏览器的posts.new url / posts / new,或者为Internet Explorer 9及更低版本支持/#/ posts / new。
当用户访问您的应用程序的链接时,它们将自动升级或降级到相应的Location类,并根据需要对URL进行相应的转换。