使用JS检查HTML5

时间:2011-10-26 08:53:01

标签: javascript html5

我有一个页面,其中包含一些JS来更新浏览器历史记录(pushState(),使用HTML5)。由于IE8不支持HTML5,因此用户被告知该页面包含错误。虽然这不会破坏页面的功能,但它看起来不太专业,所以我想知道在运行此代码之前是否检查用户浏览器是否支持HTML5?

<script type="text/javascript">
/** Update history.state() (for back/forward links) */
var object = {
    ajax_string: '<?php echo make_ajax_string(); ?>',
    security: '<?php echo wp_create_nonce('updated-page-nonce'); ?>',
};
window.history.replaceState(object, '<?php echo $post->post_title; ?>', '<?php echo get_permalink($post->ID); ?>');
</script>

感谢。

4 个答案:

答案 0 :(得分:9)

您可以在运行代码之前检查replaceState方法是否可用:

if(window.history.replaceState) {
    //Your code
}

如果replaceStateundefined(在不支持它的浏览器中就是这种情况),则语句的计算结果为false,并且代码不会执行。

答案 1 :(得分:6)

我建议使用Modernizr

答案 2 :(得分:1)

您可以使用Modernizr检查浏览器是否支持新的HTML5历史记录API(pushStatereplaceStatepopState),或使用 History.js具有完全跨浏览器兼容性。

答案 3 :(得分:1)

我建议:

if (!!(window.history && history.replaceState)) {
    // has replaceState support
}