45

我想在不重新加载页面的情况下更改 URL。我发现的可能解决方案是

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

但某些浏览器如 Firefox 3.5、IE6+ 不支持此功能,因此对他们来说解决方案是

var uri = window.location.href;

但问题是如何发现浏览器是否支持 history.pushstate?

TRY CATCH 是可能的解决方案还是其他任何东西。

4

1 回答 1

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

最快的测试是在浏览器控制台中运行它以查看它是否受支持:

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

另请注意,在 FF 中typeof(history.pushState)返回“函数”,而在 IE 中返回“未定义”

于 2011-07-26T03:40:31.320 回答