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

Ashish Agarwal picture Ashish Agarwal · Jul 26, 2011 · Viewed 23.2k times · Source

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.

Answer

Kon picture Kon · Jul 26, 2011
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"