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

相關文章
相關標籤/搜索