注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

伯纳乌の夢

可以挽回么?我们按“ Ctrl+Z”撤销掉吧。对不起啦~~

 
 
 

日志

 
 
 
 

全世界最短的IE判定  

2010-07-10 23:41:35|  分类: Web |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
[traceback]:http://www.javaeye.com/topic/654801
以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的。          
var ie = !+"\v1";
仅仅需要7bytes!参见这篇文章,《32 bytes, ehr ... 9, ehr ... 7!!! to know if your browser is IE》
讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事;
以前用的代码 var ie = !!(window.attachEvent && !window.opera);
但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的差异做成的。
对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会自动剔除它。            
<script type="text/javascript">
  if(-[1,]){ 
       alert("这不是IE浏览器!"); 
  }else{ 
       alert("这是IE浏览器!"); 
  }
</script>

准确点说,它是判读是不是使用Trident内核的浏览器,而非IE浏览器!

使用Trident内核的浏览器:IE、Maxthon、TT、The World、360SE等

使用Gecko内核的浏览器:Netcape6及以上版本、 FireFox、MozillaSuite/SeaMonkey;

使用Presto内核的浏览器:Opera7及以上版本;

使用Webkit内核的浏览器:Safari、Chrome。

var ie = !-[1,];     alert(ie); 
  评论这张
 
阅读(146)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017