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 EasyUI的formatter格式化函数代码
Jan 12 Javascript
javascript带回调函数的异步脚本载入方法实例分析
Jul 02 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
Sep 04 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
Apr 13 Javascript
js获取新浪天气接口的实现代码
Jun 06 Javascript
JavaScript检测原始值、引用值、属性
Jun 20 Javascript
浅谈JavaScript 中有关时间对象的方法
Aug 15 Javascript
jQuery实现的tab标签切换效果示例
Sep 05 Javascript
vue中v-model动态生成的实例详解
Oct 27 Javascript
详解JavaScript事件循环机制
Sep 07 Javascript
JavaScript ES6中的简写语法总结与使用技巧
Dec 30 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 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 token使用与验证示例【测试可用】
2017/08/30 PHP
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
下载给定网页上图片的方法
2014/02/18 Python
详解K-means算法在Python中的实现
2017/12/05 Python
基于DATAFRAME中元素的读取与修改方法
2018/06/08 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
Python中的heapq模块源码详析
2019/01/08 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
华三通信H3C面试题
2015/05/15 面试题
介绍一下linux的文件权限
2014/07/20 面试题
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
广播节目策划方案
2014/05/23 职场文书
工厂车间标语
2014/06/19 职场文书
植物生产学专业求职信
2014/08/08 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
国际贸易实训总结
2015/08/03 职场文书
企业愿景口号
2015/12/25 职场文书
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers