用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改变Session的值(用ajax实现)
Dec 28 Javascript
jquery如何实现锚点链接之间的平滑滚动
Dec 02 Javascript
基于jQuery实现表单提交验证
Nov 24 Javascript
浅析javascript操作 cookie对象
Dec 26 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
JavaScript中各种引用类型的常用操作方法小结
May 05 Javascript
AngularJS动态添加数据并删除的实例
Feb 27 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
跨域请求两种方法 jsonp和cors的实现
Nov 11 Javascript
ES7之Async/await的使用详解
Mar 28 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 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自动给文章加关键词链接的函数代码
2012/11/29 PHP
php获取apk包信息的方法
2014/08/15 PHP
php导出CSV抽象类实例
2014/09/24 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
PHP多维数组排序array详解
2017/11/21 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
Javascript倒计时代码
2010/08/12 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
python实现决策树分类
2018/08/30 Python
django+echart数据动态显示的例子
2019/08/12 Python
python计算auc的方法
2020/09/09 Python
2015大学生自我评价范文
2015/03/03 职场文书
会计工作能力自我评价
2015/03/05 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
德生BCL3000抢先使用感受和评价
2022/04/07 无线电