`
Blackbaby
  • 浏览: 183890 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

最短的IE判定

阅读更多
<script type="text/javascript">
alert([1,2]);//相当于alert([1,2].toString()); --这在IE与非IE上都相同,都会弹出"1,2"
alert([1,]);//相当于alert([1,].toString());--在非IE的标准浏览器上,js引擎会自动删除最后的",",所以在IE上会弹出"1,",而在非IE上会弹出"1"
alert(+[1,]);//根据上面的解释,这一句在IE上相当于alert(+"1,"),而在非IE上相当于alert(+"1"),正号的作用在于试图将字符串转换为数字,"1,"当然不是数字,而"1"可以转换为数字1,所以最终的结果:IE上会转换失败弹出"NaN",而非IE浏览器上会弹出数字"1"

//上面的+号转换字符串为数字的测试
var s = +"5";
alert(s+1);

//ok,到这里为止,我们知道 +[1,] 最终在IE为上NaN,在非IE浏览器上则为数字1

//下面再来看看很有个性的NaN
alert(NaN==true);//弹出 false
alert(NaN==false);//弹出 false
alert(NaN==NaN);//弹出 false

//即NaN不管与谁比较都是false
alert(!NaN);//相当于alert(!(NaN==true)),根据上面的解释当然是弹出true


//所以,alert(!+[1,]) 最终在IE上会弹出"true",下面再来看看firefox等非IE浏览器上的表现
alert(new Boolean(0));//false
alert(new Boolean(1));//true
alert(new Boolean(-1));//true
//即:数字0会转换为false,其它任何数字都会转换为true,所以最终在非IE浏览器上最终等效于:
alert(!1);
//即
alert(!true)//最终会得到false

//综上所述:下面的这个判断就能判定浏览器是不是IE
if (!+[1,]){
	alert("我是货真价实的IE浏览器!")
}
else{
	alert("我不是IE!")
}
</script>

 

原文链接:http://www.cnblogs.com/yjmyzz/archive/2010/05/13/1734695.html

分享到:
评论

相关推荐

    解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码

     这句代码在IE9之前曾被称为世界上最短的IE判定代码。代码虽短但确包含了不少javascript基础知识在里面。在这个例子中代码执行时会先调用数组的toString()方法 ,执行[1,].toString()在IE6,7,8中将会得到“1,”。...

    最短的IE判断var ie=!-[1,]分析

    以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的。  代码如下:  var ie = !+”\v1″;   仅仅需要7bytes!参见这篇文章,《32 bytes, ehr … 9, ehr … 7!!! to know if your browser is IE》,讲述外国...

    IE的有条件注释判定IE版本详解(附实例代码)

    IE的有条件注释是一种专有的(因此是非标准的)、对常规(X)HTML注释的Miscrosoft扩展。顾名思义,有条件注释使你能够根据条件(比如浏览器版本... 让我们据几个例子来看看吧—— 只有IE才能识别 因为只有IE5以上的版

    简洁短小的 JavaScript IE 浏览器判定代码

    这个目前世界上最短的 Javascript 判定 IE 浏览器的方法来自俄罗斯!它已经在各版本的 IE 以及目前其他流行的浏览器上经过测试,基于 IE 的 Bug,微软虽然已经意识到,但是从来没有纠正过。 代码如下: [removed] var...

    最短的IE判断代码

    to know if your browser is IE》,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事 但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的...

    js 全世界最短的IE浏览器判断代码

    to know if your browser is IE》,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事 但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的...

    三极管工作状态判定方法PPT教案.pptx

    本资源为一份关于三极管工作状态判定的PPT教案,主要讲解了三极管的工作状态判定方法,包括判定法、电流关系判定法和电位判定法等内容。 一、三极管工作状态判定法 三极管的工作状态可以通过判定法来确定。判定法...

    修改IE的HTTP等待时间

    具体来说,在IE6、IE7和IE8版本中,HTTP请求的默认超时时间各不相同,尤其是IE7和IE8版本中,默认超时时间较短,如果服务器未能在规定时间内响应,浏览器就会判定为请求失败,从而引发错误提示。 #### 三、解决方案...

    原生js仿jq判断当前浏览器是否为ie,精确到ie6~8

    熟悉jq的朋友可能会偶尔用到判定当前浏览器是否为ie,甚至是具体到ie哪个版本。比如说判定当前浏览器是ie7 ,写法如下: if($.browser.msie && $.browser.version==7){ //ie7下执行该区域代码 } 原生js,仿jq写法,...

    IE浏览器安全设置.pptx

    Cookie的应用非常广泛,典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookie的功用。另一个重要应用场合是购物车之类处理。用户...

    判定对象是否为window的js代码

    结果是五花八门: [object Object]IE6 [object Object]IE8 [object Window]firefox3.6 [object Window]opera10 [object DOMWindow]safai4.04 [object global]chrome5.0.3.22 看一下赫赫有名怎样判定,就判定它是否...

    JavaScript数据类型判定的总结笔记

    JavaScript中的数据类型判定是前端开发中常用到的一项基础技能。在这篇笔记中,作者详细地介绍了在JavaScript中如何判定数据类型,并提供了一些实用的函数和方法,帮助开发者能够更加准确地识别和处理各种数据类型。...

    ie 7/8不支持trim的属性的解决方案

    需要注意的是,这种方法需要额外的判定以处理数组为空的情况,并且由于浏览器对分组的处理速度较慢,这种方法的效率并不高。 6. 第六种实现则是第五种的优化版本,通过使用非捕获性分组(?:exp),提高了性能,但是...

    jquery实现图片等比例缩放以及max-width在ie中不兼容解决

    // 判定浏览器为IE6 if (!$.support.style && $.browser.msie && ($.browser.version == 6.0)) { var imgWidth = $(this).width(); var imgHeight = $(this).height(); var maxHeight = maxWidth * imgHeight /...

    Js做的简单贪吃蛇游戏,环境IE7

    如果蛇头的坐标与食物或蛇身的某一个坐标相同,就判定发生了碰撞。 7. **分数系统**:吃到食物后,游戏通常会增加分数。这可以通过维护一个变量记录分数,并在每次吃食物时进行更新。 8. **动画效果**:为了使游戏...

    JS判定是否原生方法

    // IE & W3C browsers return "[native code]" // Safari [function]" (/{s*[native code]s*}|^[function]$/).test(object[method].toString()); }; ``` 这里增加了一个额外的参数`object`,以便可以直接指定要...

    前端开发过程中浏览器版本的两种判定方法

    这种方法特别适用于IE浏览器,从IE5版本开始就已经支持。HTML注释的一般格式是“&lt;!--注释内容--&gt;”,但IE扩展了HTML注释的语法,使其能够支持条件注释。条件注释的格式为“&lt;!--[if 表达式]&gt;HTML代码&lt;![endif]--&gt;”,...

Global site tag (gtag.js) - Google Analytics