js里面关于IE和万恶的IE6的判断
刚接触前端的时候,师傅最先告诉我的就是前端要玩的转,浏览器的兼容性必须弄明白,然后我知道了兼容性就是意味着Microsoft IE,就是意味着万恶的IE6,我这个时候才知道秦始皇统一六国的好处,垄断带来的便捷,要是IE把浏览器市场垄断了,或者IE被别的浏览器厂商给淘汰了该多好啊,YYing....,刚开始的时候只是CSS的兼容性问题,什么最经典的双倍边距BUG了啥的,那个时候我还不会用display:inline来解决,最开始知道和了解的就是CSS HACK写法,也就是“_”,“*”,“!important”,"/8"什么的写法,到了开始学习JS的时候,兼容性问题还是依然存在的(恨的我牙痒痒,在NB的IE面前换个语言也没用),一开始为了判断IE或者IE6只能写很长很长的JS代码来取浏览器的信息,然后通过if来判断是哪个浏览器,真是费心费力啊。但是人才比比皆是啊,在网上搜到很多很巧妙的判断IE和IE6的JS代码,现给大家呈上:
1 var isIE=!!window.ActiveXObject;
2 var isIE6=isIE&&!window.XMLHttpRequest;
3 var isIE8=isIE&&!!document.documentMode;
4 var isIE7=navigator.appVersion.match(/7./i)=='7.';
5 if (isIE){
6 if (isIE6){
7 alert(”ie6″);
8 }else if (isIE8){
9 alert(”ie8″);
10 }else if (isIE7){
11 alert(”ie7″);
12 }
13 }
短了吗?真的短了哎,还有更短的吗,有!
2010年1月,一位俄国人利用了IE与标准浏览器在处理数组的toString方法的差异,仅6bytes就完美完成了是否IE浏览器的检测:
1 var ie = !-[1,];
那么我们完全可以用这句6个字节的代码和上面的代码合并来判断IE6
1 var ie6=!-[1,]&&!window.XMLHttpRequest;