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 相关文章推荐
JavaScript写的一个自定义弹出式对话框代码
Jan 17 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
Aug 18 Javascript
js正则表达式中test,exec,match方法的区别说明
Jan 29 Javascript
客户端验证用户名和密码的方法详解
Jun 16 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
javascript使用 concat 方法对数组进行合并的方法
Sep 08 Javascript
微信小程序 动态绑定数据及动态事件处理
Mar 14 Javascript
Javascript 严格模式use strict详解
Sep 16 Javascript
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
vue2.0中set添加属性后视图不能更新的解决办法
Feb 22 Javascript
微信小程序新手教程之页面打开数量限制
Mar 03 Javascript
layui实现鼠标移动到单元格上显示数据的方法
Sep 11 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
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
javascript 数组的方法集合
2008/06/05 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
vue刷新和tab切换实例
2018/02/11 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
JSX在render函数中的应用详解
2019/09/04 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
python服务器端收发请求的实现代码
2014/09/29 Python
Python守护进程用法实例分析
2015/06/04 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
Python小进度条显示代码
2019/03/05 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
python中random模块详解
2021/03/01 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
与UNIX有关的几个名词
2015/09/17 面试题
教师找工作推荐信
2013/11/23 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
实习工作表现评语
2014/12/31 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
利用python做数据拟合详情
2021/11/17 Python