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 相关文章推荐
jQuery div层的放大与缩小简单实现代码
Mar 28 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 Javascript
JavaScript严格模式禁用With语句的原因
Oct 20 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
Nov 23 Javascript
javascript数组去重的方法汇总
Apr 14 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
VUE中使用Vue-resource完成交互
Jul 21 Javascript
linux 后台运行node服务指令方法
May 23 Javascript
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 Javascript
js的Object.assign用法示例分析
Mar 05 Javascript
vue绑定class的三种方法
Dec 24 Vue.js
详细介绍Next.js脚手架完整搭建封装
Apr 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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
JQuery小知识
2010/10/15 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
用tensorflow搭建CNN的方法
2018/03/05 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
解决python 上传图片限制格式问题
2019/10/30 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
凯蒂·佩里个人女鞋品牌:Katy Perry Collections
2019/04/04 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
我的梦中国梦演讲稿
2014/04/23 职场文书
兴趣小组活动总结
2014/05/05 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers