Search code examples
javascriptcross-browserhashpushstate

How to find if a browser supports History.Pushstate or not?


I want to change URL without without reloading the page. The possible solution I found is

window.history.pushState('page2', 'Title', '/page2.php');

but some browser like Firefox 3.5, IE6+ does not support this, so for them solution is

var uri = window.location.href;

but the issue is how to discover if a browser supports history.pushstate or not?

Is TRY CATCH is the possible solution or any thing else.


Solution

  • if (history.pushState) {
      // supported.
    }
    

    Quickest test is to run this in the browser console to see if it's supported:

    if (history.pushState) { alert('supported'); }
    

    Also notice that in FF typeof(history.pushState) returns "function", while in IE it returns "undefined"