JavaScript遁·判断 IE 浏览器之术

  用了许久的 jQuery/zepto.js ,随着工龄的增长,不利于我们探索原生的奥秘,JavaScript 作为我们前端开发工程师的母语,如果我们连母语都不深刻了解,熟练运用,那就会被众人耻笑,所以,我决定减少对这些封装库的使用,回归原生,再或者我特么自己用原生封装自己的一个库,对,就是要这么的牛逼!

  我们知道 IE 的引擎和标准浏览器的引擎之间总是有些许差异,因为 IE 这逗逼厂商桀骜不驯的性格,不跟着标准走,偏偏自己走一套,为难了老一辈的web开发工程师。不过虐心归虐心,这也不能难倒我们伟大而又辛勤劳动帅气低调的牛逼的web开发工程师们——判断是否是 IE 浏览器,老子写两套!

最早的解决方案是:

var ie = document.all();

原理很简单,因为只有 IE 系列的有 all() 方法,所以,你懂得...

人总是要有所追求的,为了彰显我们的逼格又出现一种简短的写法:

var ie = ! + "\v1";

你以为这样就牛逼了吗,不,还有比这7个字符更短的6个字符,鼻祖是一个碉堡的俄国人,写法如下:

var ie = ! - [1,];

  其实它的原理很简单,[1,]在标准浏览器会返回字符串"1",相当于调用[1,].toString,IE则返回"1,"。但是这样IE与标准都会通过检测,因此使用负号强制转换为数字,标准能成功转换为1,1会在if中自动转换为true,而IE则转换为NaN,再自动转换为false。

 

posted @ 2016-07-04 10:35  JorsonWong  阅读(91)  评论(0编辑  收藏  举报