Deasel-s-magic-box

  最近一直在用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判断的需求了,特此记录一下!

分类:

技术点:

相关文章: