JavaScript中一个奇葩的IE浏览器判断方法


Posted in Javascript onApril 16, 2014

记得在网上Down的很多源码用的最多的一种方式就是:

var ie = document.all();

这是因为IE浏览器的document下有all方法,而所谓的标准浏览器却没有,所以很长的一段时间,这个是一种非常普遍的方法。
在之后大家开始追求起简短,就像在这之后一度流行的一种方法:
var ie = ! + "\v1";

这个是利用IE不支持垂直制表符的特性而判别的,仅仅7个字符已经很让人震惊了,可是这个记录被一个俄国人在今年早些的时候打破了,人家只需要6个字符就可以搞定了。
我们暂且不讨论这一个字符能够做什么,但把它看作是一种研究,或者你说他是闲的那啥痛也行(吐槽~)。
var ie = ! - [1,];

其实它的原理很简单,[1,]在标准浏览器会返回字符串"1",相当于调用[1,].toString,IE则返回"1,"。但是这样IE与标准都会通过检测,因此使用负号强制转换为数字,标准能成功转换为1,1会在if中自动转换为true,而IE则转换为NaN,再自动转换为false!查看DEMO。
很简单对吧?肯定会有很多人跟我一样在想,我怎么就没想到呢?是啊,我怎么就没想到呢?(笑~)
Javascript 相关文章推荐
js输出列表实现代码
Sep 12 Javascript
prettify 代码高亮着色器google出品
Dec 28 Javascript
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
JS应用正则表达式转换大小写示例
Sep 18 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
Jan 13 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
AngularJS 仿微信图片手势缩放的实例
Sep 28 Javascript
详解一个小实例理解js原型和继承
Apr 24 Javascript
微信小程序身份证验证方法实现详解
Jun 28 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
Oct 23 jQuery
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 Javascript
swiperjs实现导航与tab页的联动
Dec 13 Javascript
JavaScript面向对象编程入门教程
Apr 16 #Javascript
jQuery的cookie插件实现保存用户登陆信息
Apr 15 #Javascript
jquery实现点击文字可编辑并修改保存至数据库
Apr 15 #Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 #Javascript
JS比较2个日期间隔的示例代码
Apr 15 #Javascript
模拟一个类似百度google的模糊搜索下拉列表
Apr 15 #Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
Apr 15 #Javascript
You might like
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
JS 对象介绍
2010/01/20 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
js同源策略详解
2015/05/21 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
javascript实现连续赋值
2015/08/10 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
python生成特定分布数的实例
2019/12/05 Python
编写python代码实现简单抽奖器
2020/10/20 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
商务日语专业毕业生求职信
2013/10/26 职场文书
工程质量承诺书范文
2014/03/27 职场文书
农民工讨薪标语
2014/06/26 职场文书
2015年党建工作总结
2015/03/30 职场文书
张思德观后感
2015/06/09 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python