move the map without the hash changing.
*/
OSM.Router = function (map, rts) {
move the map without the hash changing.
*/
OSM.Router = function (map, rts) {
function Route(path, controller) {
var regexp = new RegExp("^" +
path.replace(escapeRegExp, "\\$&")
.replace(optionalParam, "(?:$1)?")
.replace(namedParam, function (match, optional) {
function Route(path, controller) {
var regexp = new RegExp("^" +
path.replace(escapeRegExp, "\\$&")
.replace(optionalParam, "(?:$1)?")
.replace(namedParam, function (match, optional) {
- currentRoute = routes.recognize(currentPath),
- currentHash = location.hash || OSM.formatHash(map);
+ currentRoute = routes.recognize(currentPath),
+ currentHash = location.hash || OSM.formatHash(map);
$(window).on("popstate", function (e) {
if (!e.originalEvent.state) return; // Is it a real popstate event or just a hash change?
var path = window.location.pathname + window.location.search,
$(window).on("popstate", function (e) {
if (!e.originalEvent.state) return; // Is it a real popstate event or just a hash change?
var path = window.location.pathname + window.location.search,
if (path === currentPath) return;
currentRoute.run("unload", null, route === currentRoute);
currentPath = path;
if (path === currentPath) return;
currentRoute.run("unload", null, route === currentRoute);
currentPath = path;
router.route = function (url) {
var path = url.replace(/#.*/, ""),
router.route = function (url) {
var path = url.replace(/#.*/, ""),
if (!route) return false;
currentRoute.run("unload", null, route === currentRoute);
var state = OSM.parseHash(url);
if (!route) return false;
currentRoute.run("unload", null, route === currentRoute);
var state = OSM.parseHash(url);