用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 相关文章推荐
基于JQuery的模拟苹果桌面Dock效果(稳定版)
Oct 15 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
May 05 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
JS实现从连接中获取youtube的key实例
Jul 02 Javascript
jQuery+AJAX实现无刷新下拉加载更多
Jul 03 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
VUE axios发送跨域请求需要注意的问题
Jul 06 Javascript
vue 指令之气泡提示效果的实现代码
Oct 18 Javascript
vue中使用mxgraph的方法实例代码详解
May 17 Javascript
小程序中手机号识别的示例
Dec 14 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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
mysql 性能的检查和优化方法
2009/06/21 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php实现cookie加密的方法
2015/03/10 PHP
初识PHP中的Swoole
2016/04/05 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
js Dialog 实践分享
2012/10/22 Javascript
JQuery判断HTML元素是否存在的两种解决方法
2013/12/26 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Fabric 应用案例
2016/08/28 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python用户管理系统的实例讲解
2017/12/23 Python
python学生管理系统开发
2019/01/30 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
python 字典套字典或列表的示例
2019/12/16 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
python 画图 图例自由定义方式
2020/04/17 Python
解决Python安装cryptography报错问题
2020/09/03 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
秘书专业自荐信范文
2013/12/26 职场文书
施工安全责任书范本
2014/07/24 职场文书
群众路线个人整改方案
2014/10/25 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers
使用Java去实现超市会员管理系统
2022/03/18 Java/Android