Как узнать, поддерживает ли браузер History.Pushstate или нет? - PullRequest
43 голосов
/ 26 июля 2011

Я хочу изменить URL без перезагрузки страницы.Возможное решение, которое я нашел, это

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

, но некоторые браузеры вродеFirefox 3.5, IE6 + не поддерживает это, поэтому для них решение:

var uri = window.location.href;

, но проблема заключается в том, как обнаружить, еслибраузер поддерживает history.pushstate или нет?

Является ли TRY CATCH возможным решением или чем-то еще.

1 Ответ

82 голосов
/ 26 июля 2011
if (history.pushState) {
  // supported.
}

Самый быстрый тест - запустить его в консоли браузера, чтобы увидеть, поддерживается ли он:

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

Также обратите внимание, что в FF typeof(history.pushState) возвращает «функцию», а в IE - «неопределенный "

...