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中方法重载如何实现?以及函数的参数问题
Aug 01 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
Apr 10 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
Sep 11 Javascript
JavaScript 基础函数_深入剖析变量和作用域
May 18 Javascript
jquery实现百叶窗效果
Jan 12 Javascript
利用jQuery实现简单的拖曳效果实例代码
Oct 20 jQuery
把vue-router和express项目部署到服务器的方法
Feb 21 Javascript
基于React+Redux的SSR实现方法
Jul 03 Javascript
微信小程序如何获取手机验证码
Nov 04 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
Feb 23 Javascript
javascript运行机制之执行顺序理解
Aug 03 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下MYSQL limit的优化
2008/01/10 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
javascript计时器详解
2015/02/28 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
Python中创建二维数组
2018/10/17 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
详解python中的数据类型和控制流
2019/08/08 Python
python web框架中实现原生分页
2019/09/08 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
python中id函数运行方式
2020/07/03 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
什么是URL
2015/12/13 面试题
应届大学生简历中的自我评价
2014/01/15 职场文书
员工拓展培训方案
2014/02/15 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
四风问题查摆材料
2014/08/25 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
2015年财务部工作总结
2015/04/10 职场文书
小学教师教学反思
2016/02/24 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书