检查HTML5 History API支持的浏览器兼容性?

时间:2012-02-25 17:34:10

标签: javascript jquery html5 browser

有没有办法检查浏览器是否支持使用JavaScript支持“HTML5 History API”。

我是否必须使用if语句中的长条件列表检查所有浏览器及其版本。 或者只是像使用'if'语句检查任何函数对象就足够了......

4 个答案:

答案 0 :(得分:29)

检查全局历史对象上是否存在pushState()方法就足够了。

function supports_history_api() {
  return !!(window.history && history.pushState);
}

对于更一般的HTML 5特征检测,我会看看Modernizer

http://diveintohtml5.info/detect.html#modernizr

这将使您的代码与每个测试的混乱细节隔离开来,使代码更易读,更不容易出错。使用页面上的Modernizer脚本,您只需:

if (Modernizr.history) {
  // history management works!
} else {
  // no history support :(
  // fall back to a scripted solution like History.js
}

答案 1 :(得分:3)

检查history.pushStatehistory.replaceState对象是否存在应该足够了,因为通常情况下通常就足够了。

答案 2 :(得分:0)

您可以使用canisuse.js脚本来检测您的浏览器是否支持历史记录

caniuse.history()

答案 3 :(得分:-1)

您可以查看天气是否已注册功能:

if (typeof history.pushState != 'undefined') {
    //Enabled
}

然后只需替换//启用你想做的任何事情,如果它支持。