IE浏览器版本判断

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

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

  在网上搜索了一番,发现一个非常巧妙的办法

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)。

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

posted @ 2014-02-10 15:19  Deasel  阅读(317)  评论(0编辑  收藏  举报