The code is here if you want it, but this is not maintained. If you'd like to take over, go ahead and send a pull request. Browsers are modern enough, just ditch the last few that don't support the History API.
history.js provides an implementation of the HTML5 history API: history.pushState
and history.replaceState
functions, as well as the window.onpopstate
event.
Browsers that already support his event (Chrome & Safari, Firefox 4+) use native implementations, which are able to change the page URL without refreshing the page. Older browsers use location.hash
in order to mimic the official behavior.
1214 bytes minified / 588 bytes gzipped
onpopstate
eventInclude the script file in your HTML file:
<!-- Include JSON if you want to support older browsers -->
<script type="text/javascript" src="https://github.com/fortes/history.js/raw/master/json2.js"></script>
<script type="text/javascript" src="https://github.com/fortes/history.js/raw/master/history-min.js"></script>
Same as the official HTML5 API:
// Switch to the item
window.history.pushState({ id: 35 }, 'Viewing item #35', '/item/35'});
window.onpopstate = function (e) {
var id = e.state.id;
load_item(id);
};
Any use allowed in the standard but not supported by this API is considered a bug.
iframe
for historyuserData
behavior for persistenceglobalStorage
for persistence