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实现一个页面多个css样式实现
May 29 Javascript
禁止js文件缓存的代码
Apr 09 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
AngularJS删除路由中的#符号的方法
Sep 20 Javascript
微信小程序网络请求的封装与填坑之路
Apr 01 Javascript
Javascript实现信息滚动效果
May 18 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
Aug 03 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
Nuxt.js实战详解
Jan 18 Javascript
node中的cookie的具体使用
Sep 13 Javascript
JavaScript禁用右键单击优缺点分析
Jan 20 Javascript
ES6 Iterator接口和for...of循环用法分析
Jul 31 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/10/09 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
Python实现简单拆分PDF文件的方法
2015/07/30 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
打包发布Python模块的方法详解
2016/09/18 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
python对html过滤处理的方法
2018/10/21 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
必须要使用游标的SQL语句有那些
2012/05/07 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
酒店管理专业学生求职信
2013/09/27 职场文书
银行工作检查书范文
2014/01/31 职场文书
亲戚结婚的请假条
2014/02/11 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android