用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不是基础的基础
Dec 24 Javascript
sina的lightbox效果。
Jan 09 Javascript
TextArea不支持maxlength的解决办法(jquery)
Sep 13 Javascript
PHP中使用微秒计算脚本执行时间例子
Nov 19 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
dedecms页面如何获取会员状态的实例代码
Mar 15 Javascript
js return返回多个值,通过对象的属性访问方法
Feb 21 Javascript
Vue2.0 vue-source jsonp 跨域请求
Aug 04 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
Sep 28 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
Oct 10 Javascript
js实现图片跟随鼠标移动效果
Oct 16 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 set_time_limit()函数的使用详解
2013/06/05 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
JQuery 学习技巧总结
2010/05/21 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
js操作二进制数据方法
2018/03/03 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python计算书页码的统计数字问题实例
2014/09/26 Python
python批量提取word内信息
2015/08/09 Python
Python面向对象之继承代码详解
2018/01/29 Python
python 调用钉钉机器人的方法
2019/02/20 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Python文件操作基础流程解析
2020/03/19 Python
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
公司员工的自我评价范例
2013/11/01 职场文书
工程技术员岗位职责
2014/03/02 职场文书
啤酒节策划方案
2014/05/28 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang