Is there any way to use HTML5 History API (pushState
) in IE9?
If there is a solution for all other 开发者_如何学Cbrowsers that would be great!
History.js
Quote from the repo:
History.js gracefully supports the HTML5 History/State APIs (pushState, replaceState, onPopState) in all browsers. Including continued support for data, titles, replaceState. Supports jQuery, MooTools and Prototype. For HTML5 browsers this means that you can modify the URL directly, without needing to use hashes anymore. For HTML4 browsers it will revert back to using the old onhashchange functionality.
As per Ember documentation about history api: http://emberjs.com/api/classes/Ember.Location.html
Browsers that support the history API will use HistoryLocation, those that do not, but still support the hashchange event will use HashLocation, and in the rare case neither is supported will use NoneLocation.
App.Router.map(function() {
this.resource('posts', function() {
this.route('new');
});
});
App.Router.reopen({
location: 'auto'
});
This will result in a posts.new url of /posts/new for modern browsers that support the history api or /#/posts/new for older ones, like Internet Explorer 9 and below.
When a user visits a link to your application, they will be automatically upgraded or downgraded to the appropriate Location class, with the URL transformed accordingly, if needed.
精彩评论