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