澳门威利斯人_威利斯人娱乐「手机版」

来自 威利斯人娱乐 2019-09-16 19:56 的文章
当前位置: 澳门威利斯人 > 威利斯人娱乐 > 正文

IE检测代码,一个奇葩的最短的

实则读书大拿源代码是一种很好的升华,能够给您一种新的视线。
拜候那篇大拿的IE版本检查评定,只可以是惊讶加惊叹。短短的代码中所蕴涵的剧情其实是太多了。
据此在此间决定来解读大咖的源代码,让打算向大牌邻近并还在全力以赴的IT同民众从中学习到更多的学识。

选择 conditional comment 来判别 IE 的版本。嗯,是早日有人建议,但从未认真看代码。明日刚还好看 CSS3 PIE 的时候看到,感到是否不可信。今日看来 Paul 艾丽丝h 也提及,那么,推荐一下吗。那是笔者博客上写的:

大家先来拜会三个世界最短ie检查评定代码:

复制代码 代码如下:

复制代码 代码如下:

// ----------------------------------------------------------
// A short snippet for detecting versions of IE in JavaScript
// without resorting to user-agent sniffing
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
//     ie === undefined
// If you're in IE (>=5) then you can determine which version:
//     ie === 7; // IE7
// Thus, to detect IE:
//     if (ie) {}
// And to detect the version:
//     ie === 6 // IE6
//     ie > 7 // IE8, IE9 ...
//     ie < 9 // Anything less than IE9
// ----------------------------------------------------------

var isIE = !-[1,];

// UPDATE: Now using Live NodeList idea from @jdalton

是否很熟悉,不过有bug,就是不能够检查测验ie9,为何吗?那是因为那是海外大拿在ie9出来在此之前运用ie对数组转换的特色来形成的。ie9中早已展开了修复,所以在ie9中失效了,不过作为当下的本人,依然感叹 惊讶,大咖们对细节的商量和如此的深入(当时自身也沉迷在怎么着用最短的代码来落实一个效应和办法,不断的修改 修改,可照旧....那就是出入,差别)。
这段世界最短ie检验的代码作者就不解读和剖析了,毕竟对于当今有bug了,不可能向后特别,作者的首即使底下的ie完美检验,理论上是向后十分的,举个例子出来IE10,ok,用它,没难题,再一遍提现差距。

var ie = (function(){

下边来看看源代码先(笔者会在前边解读大腕观念和代码中的难题讲授)

    var undef,
        v = 3,
        div = document.createElement('div'),
        all = div.getElementsByTagName('i');

复制代码 代码如下:

    while (
        div.innerHTML = '<!--[if gt IE ' ( v) ']><i></i><![endif]-->',
        all[0]
    );

// ----------------------------------------------------------
// A short snippet for detecting versions of IE in JavaScript
// without resorting to user-agent sniffing
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
// ie === undefined
// If you're in IE (>=5) then you can determine which version:
// ie === 7; // IE7
// Thus, to detect IE:
// if (ie) {}
// And to detect the version:
// ie === 6 // IE6
// ie > 7 // IE8, IE9 ...
// ie < 9 // Anything less than IE9
// ----------------------------------------------------------
// UPDATE: Now using Live NodeList idea from @jdalton
var ie = (function(){
var undef,
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 : undef;
}());

    return v > 4 ? v : undef;

二个很深邃的代码,但能够健全检查实验出ie的逐个版,还足以贰回按限定检查实验,在源码的注释中操练你怎么使用。
原理:
动态创制一个div,利用ie条件注释来往里面插入二个i标签,在来检测i标签是或不是丰硕来推断是还是不是是ie浏览器。在while中连连循环来比对ie的本子。
上面大家来掌握这段代码:

}());

本文由澳门威利斯人发布于威利斯人娱乐,转载请注明出处:IE检测代码,一个奇葩的最短的

关键词: 澳门威利斯人