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异或加解密效果代码
Jun 25 Javascript
基于Jquery的实现回车键Enter切换焦点
Sep 14 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
javascript数组去重的方法汇总
Apr 14 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
jquery判断密码强度的验证代码
Apr 22 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
Dec 16 Javascript
微信小程序 详解页面跳转与返回并回传数据
Feb 13 Javascript
JS原生轮播图的简单实现(推荐)
Jul 22 Javascript
JS设计模式之惰性模式(二)
Sep 29 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
Jul 20 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中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
jQuery中的常用事件总结
2009/12/27 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
python 上下文管理器使用方法小结
2017/10/10 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
python实现简单俄罗斯方块
2020/03/13 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
个人应聘自我评价分享
2013/11/18 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server
springboot读取resources下文件的方式详解
2022/06/21 Java/Android