Skip to content
This repository has been archived by the owner on Jun 6, 2019. It is now read-only.
/ history.js Public archive

[Not Maintained!] HTML5 History APIs for legacy browsers. Implements window.history.pushState(), window.history.replaceState(), and the window.onpopstate event.

Notifications You must be signed in to change notification settings

fortes/history.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project is not maintained!

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

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

Limitations

  • Does not support multiple handlers for the onpopstate event

Installation

Include the script file in your HTML file:

<!-- Include JSON if you want to support older browsers -->
<script type="text/javascript" src="json2.js"></script>
<script type="text/javascript" src="history-min.js"></script>

Usage

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.

Supported & Tested Browsers

  • Chrome 5+ & Safari 5+ (Native)
  • Firefox 4+ (Native)
  • Firefox 3.5+
  • Chrome 4+
  • Safari 4+
  • IE8+

Unsupported / Need to test

  • Opera ?
  • IE6-7
  • Safari 3+ (No persitence)
  • Chrome 3+ (No persitence)
  • Firefox 2+ (No persitence)

TODO

  • Support IE6&7
    • Use iframe for history
    • Use userData behavior for persistence
  • Support FF2+
    • Use globalStorage for persistence
  • Chrome < 4
    • Use Gears?
  • Fallback for browsers that are unsupported

About

[Not Maintained!] HTML5 History APIs for legacy browsers. Implements window.history.pushState(), window.history.replaceState(), and the window.onpopstate event.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published