一段巧妙判断IE浏览器版本的js代码
下面这段代码使用IE可以识别html注释的特性,可以准确的判断IE浏览器的版本号,没有使用诸多怪异的测力检测方法,超级简洁。 原作者的代码地址在这里,我做了一点小改动,文中有注释,可以到这里运行测试。
/**
* ie equals one of false|6|7|8|9 values, ie5 is fucked down.
* Based on the method: https://gist.github.com/527683
*/
var ie = function () {
var v = 4, //原作者的此处代码是3,考虑了IE5的情况,我改为4。
div = document.createElement('div'),
i = div.getElementsByTagName('i');
do {
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->';
} while (i[0]);
return v > 5 ? v : false; //如果不是IE,之前返回undefined,现改为返回false。
}();

这样的代码也敢说是巧妙???
这样写才是巧妙的!!
/*@cc_on alert(document.documentMode||( document.compatMode == "CSS1Compat" ? "XMLHttpRequest" in window ? @_jscript_version*10-50 : 6 : 5)) @*/
只有一行代码,只针对IE起作用,而且考虑了IE用户自选渲染模式、怪癖模式、支持IE5、6、7、8、9及10。
不要怪我喷你。实在看不下去了,这方法太笨了。
@gucong
你有更多的解决方案,分享就是了,干嘛要喷人呢!肿么这么孩子气!有木有!
var ie = function(v, p, needle, undef) {
needle = p.getElementsByTagName('br');
while(v > 0){
p.innerHTML = '';
if(needle[0]) return v;
}
return v;
}(10, document.createElement('p'));
console.log(ie)
这是我10年12份写的,
都太复杂了。。
if(-[1,]){
alert("非IE");
}else{
alert("IE");
}