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 相关文章推荐
分享一个asp.net pager分页控件
Jan 04 Javascript
javascript full screen 全屏显示页面元素的方法
Sep 27 Javascript
javascript中不等于的代码是什么怎么写
Dec 29 Javascript
javascript获取checkbox复选框获取选中的选项
Aug 12 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
Nov 12 Javascript
基于javascript实现最简单选项卡切换
Feb 01 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
May 27 Javascript
详解JS中统计函数执行次数与执行时间
Sep 04 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
Sep 27 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
JavaScript私有变量实例详解
Jan 24 Javascript
JavaScript实现页面中录音功能的方法
Jun 04 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 db类库进行数据库操作
2009/03/19 PHP
PHP获取表单textarea数据中的换行问题
2010/09/10 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
json 定义
2008/06/10 Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
最新大学生自我评价
2013/09/24 职场文书
学院书画协会部门职责
2013/11/28 职场文书
初一科学教学反思
2014/01/27 职场文书
初中校园广播稿
2014/02/02 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
小学德育工作总结2015
2015/05/12 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
导游词之丽江普济寺
2019/10/22 职场文书