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实现图片预加载无需等待
Dec 21 Javascript
Js注册协议倒计时的小例子
Jun 24 Javascript
JavaScript解析json格式数据简单示例
Dec 09 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
Oct 25 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
Bootstrap源码解读表单(2)
Dec 22 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
Dec 31 Javascript
20行JS代码实现粘贴板复制功能
Feb 06 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
Sep 16 Javascript
浅谈KOA2 Restful方式路由初探
Mar 14 Javascript
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 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 开发环境配置(Zend Server安装)
2010/04/28 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
phplot生成图片类用法详解
2015/01/06 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
JS的replace方法介绍
2012/10/20 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
Nodejs 获取时间加手机标识的32位标识实现代码
2017/03/07 NodeJs
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
PHP经典面试题
2016/09/03 面试题
不拖欠农民工工资承诺书
2014/03/31 职场文书
报告会主持词
2014/04/02 职场文书
社区创先争优承诺书
2014/08/30 职场文书
临时租车协议范本
2014/09/23 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
意向协议书
2015/01/27 职场文书
父母教会我观后感
2015/06/17 职场文书
2016年少先队活动总结
2016/04/06 职场文书
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA