用javascript判断IE版本号简单实用且向后兼容


Posted in Javascript onSeptember 11, 2013

今天一个项目中需要判断IE版本号,又因为 jQuery 2.0 去除了对浏览器版本号的判断(它推荐特性检测),于是就看到一老外写的一段代码:

var _IE = (function(){ 
var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i'); 
while ( 
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->', 
all[0] 
); 
return v > 4 ? v : false ; 
}());

这段代码着实巧妙!既简介、有向后兼容!一般做法都是:正则搜索 USER_AGENT ;
但因为历史原因, USER_AGENT 一直都不准确,而且被各大厂商改的乱七八糟。

比如:

IE10 : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) 
IE11 : Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko

这都是些什么乱七八糟的什么字符串啊。。。鬼知道 IE12会变成什么!!!
所以使用特性检测、或者USER-AGENT检测既不可靠,也不向后兼容!

强烈推荐上述代码!
——————————————————————-
以前刚学会编程的时候,感觉自己知道的挺多,有很多东西可以写;
可真正深入学习很多知识之后,却痛苦的发现自己知道的实在是太少了!想写点什么,却很难下笔。

Javascript 相关文章推荐
prototype 的说明 js类
Sep 07 Javascript
js 调整select 位置的函数
Feb 21 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
Dec 11 Javascript
js中onload与onunload的使用示例
Aug 25 Javascript
初步认识JavaScript函数库jQuery
Jun 18 Javascript
js实现仿Discuz文本框弹出层效果
Aug 13 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
Nov 17 Javascript
用jQuery实现优酷首页轮播图
Jan 09 Javascript
vue.js的提示组件
Mar 02 Javascript
javascript实现函数柯里化与反柯里化过程解析
Oct 08 Javascript
vue使用原生swiper代码实例
Feb 05 Javascript
vue 获取url里参数的两种方法小结
Nov 12 Javascript
js open() 与showModalDialog()方法使用介绍
Sep 10 #Javascript
jquery获取子节点和父节点的示例代码
Sep 10 #Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
Sep 10 #Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
Sep 10 #Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 #Javascript
原始的js代码和jquery对比体会
Sep 10 #Javascript
js获取url参数值的两种方式
Sep 10 #Javascript
You might like
PHP 数据库树的遍历方法
2009/02/06 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
thinkPHP框架实现的简单计算器示例
2018/12/07 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
python统计一个文本中重复行数的方法
2014/11/19 Python
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
Python发展简史 Python来历
2019/05/14 Python
python ssh 执行shell命令的示例
2020/09/29 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
Puma印度官网:德国运动品牌
2019/10/06 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
销售经理工作职责范文
2013/12/03 职场文书
妇联主席先进事迹
2014/05/18 职场文书
主持人开幕词
2015/01/29 职场文书
行政撤诉申请书
2015/05/18 职场文书