用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 相关文章推荐
window.showModalDialog使用手册
Jan 11 Javascript
js对数字的格式化使用说明
Jan 12 Javascript
前台js改变Session的值(用ajax实现)
Dec 28 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
js自动生成对象的属性示例代码
Oct 28 Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 Javascript
jQuery的ajax下载blob文件
Jul 21 Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 Javascript
微信小程序实战之运维小项目
Jan 17 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
vue.js element-ui validate中代码不执行问题解决方法
Dec 18 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
Aug 27 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
10条PHP编程习惯助你找工作
2008/09/29 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
php取得字符串首字母的方法
2015/03/25 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
python海龟绘图实例教程
2014/07/24 Python
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
深入理解Python中装饰器的用法
2016/06/28 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
Python简易版图书管理系统
2019/08/12 Python
Python调用Windows命令打印文件
2020/02/07 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
党员实事承诺书
2014/03/26 职场文书
大学同学会活动方案
2014/08/20 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
nginx 配置缓存
2022/05/11 Servers