现在不推荐使用$ .browser,如何使用jQuery检测IE 8?

时间:2012-07-06 21:31:19

标签: javascript jquery internet-explorer internet-explorer-8

  

可能重复:
  Best way to detect that HTML5 <canvas> is not supported

既然$ .browser is being taken out of jQuery支持$ .support,我如何使用jQuery或普通的javascript检测IE8?

if ($.browser.msie  && parseInt($.browser.version, 10) === 8) {
  alert('IE8'); 
}

抱歉,HTML不适用于我。所以我不能这样做:

<!--[if IE 8]>
<script type="text/javascript">
    ie = 8;
</script>
<![endif]-->

具体来说,我希望使用canvas标签,IE8不支持canvas,但jQuery.support不检测画布支持。

2 个答案:

答案 0 :(得分:8)

测试该功能:

var el = document.createElement('canvas');
if (el.getContext && el.getContext('2d')) {
    // canvas supported 
}

修改:

与Brandon Boone的link suggested in comments一样,这是一个功能:

function isCanvasSupported(){
  var elem = document.createElement('canvas');
  return !!(elem.getContext && elem.getContext('2d'));
}

答案 1 :(得分:2)

如果jQuery不能满足您的需求,我建议您使用Modernizr代替功能。

当然,另一个选择就是在弃用$.browser之前坚持使用旧版本的jQuery。它仍然像以往一样好用;没有人强迫你升级到最新版本。

最后,您声明无法编辑HTML,因此您无法使用条件注释。但是,值得指出的是,IE还支持相当于条件注释的Javascript。我认为你可以使用这个功能。

以下代码取自Wikipedia - 根据需要进行调整:

<script>
/*@cc_on

  @if (@_jscript_version == 10)
    document.write("You are using IE10");

  @elif (@_jscript_version == 9)
    document.write("You are using IE9");

  @elif (@_jscript_version == 5.8)
    document.write("You are using IE8");

  @elif (@_jscript_version == 5.7 && window.XMLHttpRequest)
    document.write("You are using IE7");

  @elif (@_jscript_version == 5.6 || (@_jscript_version == 5.7 && !window.XMLHttpRequest))
    document.write("You are using IE6");

  @elif (@_jscript_version == 5.5)
    document.write("You are using IE5.5");

  @else
    document.write("You are using IE5 or older");

  @end

@*/
</script>