`
Blackbaby
  • 浏览: 179948 次
  • 性别: 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基础知识在里面。

    最短的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不支持垂直制表符的特性搞出来的。

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

    以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的。

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

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

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

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

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

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

    判定对象是否为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 看一下赫赫有名怎样判定,就判定它是否...

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

    上次用原生的JavaScript实现的图片等比例缩放,max-width和max-height在ie6中不兼容问题,今天用jQuery实现了这些问题 ...$.support.style&&$.browser.msie&&($.browser.version==6.0)){ //判定浏览器为ie6的时候 var i

    js中有关IE版本检测

    javascript中经常用到IE版本的判定,实现特定需求的代码。检测浏览器虽然不是一个什么好的做法,但是有时候还是很必要的

    让网页根据不同IE版本显示不同的内容

    在上一篇blog 《IE8里判断当前网页显示模式》里面提到IE有不同的显示模式以及如何用Javascript 来动态判定。 Web开发者可以根据不同显示模式导入不同的内容。

    javascript框架设计之浏览器的嗅探和特征侦测

    主流的浏览器有ie firefox opera chorme safari 早期这些框架都是通过navigator.userAgent进行判定,目前国外的浏览器几乎都是可以判定的。 关于浏览器的判断脚本,jQuery已经移出本体,形成一个插件。更多的方式不...

    zTree(JQuery Tree) v3.1.rar

    * 【修改】异步加载 规则,不再仅仅依靠父节点的子节点数来判定,增加内部属性 zAsync,保证默认状态下父节点及时无子节点也只能异步加载一次,除非使用 reAsyncChildNodes 方法强行控制异步加载。 * 【修改】放大...

    判断浏览器版本的js代码

    可以分辨出IE6、7、8、浏览器和火狐以及opera等多种浏览器版本

    制作网页使用的CSS样式表错误排查方法

    如果在先进的浏览器内测试是正确的,而在IE内有问题,那基本上可以判定是IE的问题。  虽然浏览器可能存在着很多Bug,但是并不是与自己感觉不一样的时候就是出现了Bug。产生问题的原因可能有很多种,因此制作者需要...

Global site tag (gtag.js) - Google Analytics