用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 相关文章推荐
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
Jan 17 Javascript
window.opener用法和用途实例介绍
Aug 19 Javascript
setTimeout()递归调用不加引号出错的解决方法
Sep 05 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
Feb 21 Javascript
easyui-combobox 实现简单的自动补全功能示例
Nov 08 Javascript
js实现楼层导航功能
Feb 23 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
Jul 13 Javascript
Vue项目中使用Vux的安装过程
May 01 Javascript
简单了解JavaScript中常见的反模式
Jun 21 Javascript
详解Vue template 如何支持多个根结点
Feb 10 Javascript
VUE解决跨域问题Access to XMLHttpRequest at
May 06 Vue.js
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采集腾讯微博的实现代码
2012/01/19 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
php备份数据库类分享
2015/04/14 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
Python回调函数用法实例详解
2015/07/02 Python
Python金融数据可视化汇总
2017/11/17 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
python对象与json相互转换的方法
2019/05/07 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
pandas针对excel处理的实现
2021/01/15 Python
品学兼优的大学生自我评价
2013/09/20 职场文书
室内设计专业个人的自我评价
2013/10/19 职场文书
写给女生的道歉信
2014/01/08 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
总结会主持词
2015/07/02 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android