使用JS检查HTML5

Dav*_*ard 3 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>
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jam*_*ice 9

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

if(window.history.replaceState) {
    //Your code
}
Run Code Online (Sandbox Code Playgroud)

如果replaceStateundefined(在不支持它的浏览器中就是这种情况),则语句将求值false并且不执行代码.

  • 即使我建议Modernizr,我同意! (2认同)

Ian*_*lin 6

我建议使用Modernizr.