最近一直在用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