检查浏览器兼容性是否支持HTML5历史API
Check browser compatibility for HTML5 History API support?
是否有任何方法可以检查浏览器是否支持使用JavaScript的"HTML5 History API"。
我必须用if语句中的一长串条件来检查所有浏览器及其版本吗。或者简单地像检查函数的任何对象一样使用"if"语句就足够了???。。。
检查全局历史对象上是否存在pushState()
方法就足够了。
function supports_history_api() {
return !!(window.history && history.pushState);
}
对于更通用的HTML5功能检测,我会查看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
}
检查history.pushState
和history.replaceState
对象的存在应该是足够的,因为它通常对于特征检测来说是足够的。
您可以使用canuse.js脚本来检测浏览器是否支持历史记录
caniuse.history()
您可以检查功能是否注册:
if (typeof history.pushState != 'undefined') {
//Enabled
}
然后只需将//Enabled替换为您希望执行的任何操作(如果支持的话)。
相关文章:
- HTML5历史记录-返回上一个完整页面按钮
- HTML5历史API-操作不安全
- HTML5历史禁用转发按钮
- 更新HTML5历史中以前的状态对象
- 使用 html5 历史记录代替哈希 URL 来恢复用户的历史记录
- Html5 历史 api,任何方法检查 1 转发历史
- HTML5历史API弹出状态重新加载野生动物园刷新页面无休止
- HTML5历史记录,后退按钮和外部链接
- 如何使用 HTML5 历史记录使转发按钮在此示例中工作
- HTML5 历史 API 实现
- HTML5 历史 API 演示
- HTML5历史记录:如何查看弹出的URL(即,我们点击后退按钮时所在的页面)
- html5历史导航:除了页面加载之外,没有触发popstate
- 检查浏览器兼容性是否支持HTML5历史API
- 当浏览器不支持HTML5历史API时,有条件地通过ajax加载history.js
- 如何在 HTML5 历史记录状态中存储函数
- 使用HTML5历史记录时如何处理页面刷新
- HTML5历史api: window.history.back()丢失history.state
- 从基于哈希的导航切换到HTML5历史API
- 链接到外部页面的部分,不带哈希'#'(html5历史吗?)