<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
分享到:
相关推荐
句代码在IE9之前曾被称为世界上最短的IE判定代码。代码虽短但确包含了不少javascript基础知识在里面。
以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的。 代码如下: var ie = !+”\v1″; 仅仅需要7bytes!参见这篇文章,《32 bytes, ehr … 9, ehr … 7!!! to know if your browser is IE》,讲述外国...
以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的。
以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的。
这个目前世界上最短的 Javascript 判定 IE 浏览器的方法来自俄罗斯!它已经在各版本的 IE 以及目前其他流行的浏览器上经过测试,基于 IE 的 Bug,微软虽然已经意识到,但是从来没有纠正过。 代码如下: [removed] var...
IE的有条件注释是一种专有的(因此是非标准的)、对常规(X)HTML注释的Miscrosoft扩展。顾名思义,有条件注释使你能够根据条件(比如浏览器版本... 让我们据几个例子来看看吧—— 只有IE才能识别 因为只有IE5以上的版
熟悉jq的朋友可能会偶尔用到判定当前浏览器是否为ie,甚至是具体到ie哪个版本。比如说判定当前浏览器是ie7 ,写法如下: if($.browser.msie && $.browser.version==7){ //ie7下执行该区域代码 } 原生js,仿jq写法,...
结果是五花八门: [object Object]IE6 [object Object]IE8 [object Window]firefox3.6 [object Window]opera10 [object DOMWindow]safai4.04 [object global]chrome5.0.3.22 看一下赫赫有名怎样判定,就判定它是否...
上次用原生的JavaScript实现的图片等比例缩放,max-width和max-height在ie6中不兼容问题,今天用jQuery实现了这些问题 ...$.support.style&&$.browser.msie&&($.browser.version==6.0)){ //判定浏览器为ie6的时候 var i
javascript中经常用到IE版本的判定,实现特定需求的代码。检测浏览器虽然不是一个什么好的做法,但是有时候还是很必要的
在上一篇blog 《IE8里判断当前网页显示模式》里面提到IE有不同的显示模式以及如何用Javascript 来动态判定。 Web开发者可以根据不同显示模式导入不同的内容。
主流的浏览器有ie firefox opera chorme safari 早期这些框架都是通过navigator.userAgent进行判定,目前国外的浏览器几乎都是可以判定的。 关于浏览器的判断脚本,jQuery已经移出本体,形成一个插件。更多的方式不...
* 【修改】异步加载 规则,不再仅仅依靠父节点的子节点数来判定,增加内部属性 zAsync,保证默认状态下父节点及时无子节点也只能异步加载一次,除非使用 reAsyncChildNodes 方法强行控制异步加载。 * 【修改】放大...
可以分辨出IE6、7、8、浏览器和火狐以及opera等多种浏览器版本
如果在先进的浏览器内测试是正确的,而在IE内有问题,那基本上可以判定是IE的问题。 虽然浏览器可能存在着很多Bug,但是并不是与自己感觉不一样的时候就是出现了Bug。产生问题的原因可能有很多种,因此制作者需要...