判断浏览器是否IE10

项目中做打印预览时,在IE10中出现兼容性问题,需要针对IE10做特殊处理。
在网上搜了一下,有三种方法可以实现

一、特性检测:@cc_on
  <!--[if !IE]><!--><script>
  if (/*@cc_on!@*/false) {
    document.documentElement.className+=' ie10';
  }
  </script><!--<![endif]-->

    文章中说该方法可行,但我在IE8中试了也同样返回true


二、@media -ms-high-contrast 方法
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { 
   /* IE10-specific styles go here */
 }


//由于是在js中使用,所以改动一下
function isIE10(){
  var flag = false;
  try{
    if(window.matchMedia("screen and (-ms-high-contrast: active), (-ms-high-contrast: none)").matches){
      flag = true;
    }
  }catch(e){ }

  return flag;
}
实际使用的该方法解决有一个问题,如果IE10的文档模式设置为IE10以下,同样也会和其它版本的IE得到一样的"false"结果。
这个时候使用<META http-equiv="X-UA-Compatible" content="IE=edge" />显示定义IE的文档模式“edge”为最新版本

三、@media 0 方法
这个方法不是太完美,因为IE9和预览版的IE11也支持media和\0的hack。
@media screen and (min-width:0\0) { 
/* IE9 , IE10 ,IE11 rule sets go here */
}

该方法没有试过

参考文章:http://www.css88.com/archives/5273

 

posted @ 2013-09-02 02:21  上善若水.  阅读(2215)  评论(0编辑  收藏  举报