可能重复:
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不检测画布支持。
答案 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>