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实现跟随鼠标移动且带关闭功能的图片广告实例
Feb 26 Javascript
3个可以改善用户体验的AngularJS指令介绍
Jun 18 Javascript
JS实现支持多选的遍历下拉列表代码
Aug 20 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
详解webpack的配置文件entry与output
Aug 21 Javascript
vue的for循环使用方法
Feb 12 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
Vue分页器实现原理详解
Jun 28 Javascript
vue项目中常见问题及解决方案(推荐)
Oct 21 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
vue开发移动端底部导航条功能
Apr 08 Javascript
QT与javascript交互数据的实现
May 26 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基础知识:函数基础知识
2006/12/13 PHP
php实现快速排序法函数代码
2012/08/27 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
python使用str & repr转换字符串
2016/10/13 Python
彻底搞懂Python字符编码
2018/01/23 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
解决Python3中的中文字符编码的问题
2018/07/18 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
python 字典操作提取key,value的方法
2019/06/26 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
Linux操作面试题
2015/02/11 面试题
个人委托书格式
2014/04/04 职场文书
医院营销工作计划
2015/01/16 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
mysql配置SSL证书登录的实现
2021/09/04 MySQL