History API: Javascript Pushstate, get previous URL

HandiworkNYC.com picture HandiworkNYC.com · Nov 8, 2012 · Viewed 19.9k times · Source
$(window).bind('statechange',function(){
     var State = History.getState(),
     url = State.url;
});

In the following function, url returns the current URL. What I'm looking for is, within that function, to get the previous URL, so for example, if I'm on /cars/ferrari and go to /cars/ford, url would return cars/ford, but I want to get /cars/ferrari.

How do I get the previous URL within a statechange event?

Answer

HandiworkNYC.com picture HandiworkNYC.com · Nov 8, 2012
$(window).bind('statechange',function(){
    // Prepare Variables
    var State = History.getState(),
        url = State.url,
        states = History.savedStates,
        prevUrlIndex = states.length - 2,
        prevUrl = states[prevUrlIndex].hash;
});

That seems to do the trick! prevUrl gives me the desired URL.