IE浏览器版本判断

  最近一直在用less写css,由于在低版本IE(6-8)中须要引入一个fix的js,用于填补低版本IE的兼容性问题。每次写东西都要引用两个js挺麻烦的,就想写一个简单的版本判断来自动管理shim脚本。css

  由于个人IE已经升级到11,以前经常使用的IE判断方式(!+'\v1' ,activeX)等在IE11里都宣布失效(不过发现IE11不少地方都在向标准看齐,应该算是一个好现象吧)。并且userAgent这个坑爹的货一直被假装来,假装去,看的有点反胃。less

  在网上搜索了一番,发现一个很是巧妙的办法spa

var _IE = (function(){
    var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
        all[0]
    );
    return v > 4 ? v : false ;
}());

  利用条件语句巧妙的解决了这个判断问题,不得不感叹这代码写得好啊!不过在个人IE11里面搞不定,貌似是IE10+之后就不支持条件语句了(http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx)。code

  不过已经完美解决我对低版本IE判断的需求了,特此记录一下!blog

相关文章
相关标签/搜索