- router.stateChange = function(state) {
- if (state.center) {
- window.history.replaceState(state, document.title, OSM.formatHash(state));
- } else {
- window.history.replaceState(state, document.title, window.location);
- }
- };
- } else {
- router.route = function (url) {
- window.location.assign(url);
- };
+ router.route = function (url) {
+ var path = url.replace(/#.*/, ""),
+ route = routes.recognize(path);
+ if (!route) return false;
+ currentRoute.run("unload", null, route === currentRoute);
+ var state = OSM.parseHash(url);
+ map.setState(state);
+ window.history.pushState(state, document.title, url);
+ currentPath = path;
+ currentRoute = route;
+ currentRoute.run("pushstate", currentPath);
+ updateSecondaryNav();
+ return true;
+ };