From: John Firebaugh Date: Fri, 8 Nov 2013 20:19:47 +0000 (-0800) Subject: Ignore hashchange-triggered popstate events here too X-Git-Tag: live~4674^2~138 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/e68e3e9150c1e02063664afcf8f6028903c59cb4 Ignore hashchange-triggered popstate events here too --- diff --git a/app/assets/javascripts/router.js b/app/assets/javascripts/router.js index 654ec860b..7a61af106 100644 --- a/app/assets/javascripts/router.js +++ b/app/assets/javascripts/router.js @@ -50,7 +50,12 @@ OSM.Router = function(rts) { currentRoute.run('load', currentPath); if (window.history && window.history.pushState) { - $(window).on('popstate', function() { + // Set a non-null initial state, so that the e.originalEvent.state + // check below works correctly when going back to the initial page. + window.history.replaceState({}, document.title, window.location); + + $(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');