用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函数般调用正则
Apr 08 Javascript
学习js在线html(富文本,所见即所得)编辑器
Dec 18 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
Apr 15 Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 Javascript
极力推荐10个短小实用的JavaScript代码段
Aug 03 Javascript
AngularJS路由切换实现方法分析
Mar 17 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
Aug 30 Javascript
微信小程序开发之路由切换页面重定向问题
Sep 18 Javascript
bootstrap中的导航条实例代码详解
May 20 Javascript
详解package.json版本号规则
Aug 01 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 数组遍历顺序理解
2009/09/09 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
vue跨域解决方法
2017/10/15 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
解决python删除文件的权限错误问题
2018/04/24 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
如何在django中实现分页功能
2020/04/22 Python
JAVA和C++的区别
2013/10/06 面试题
成教毕业生自我鉴定
2013/10/23 职场文书
高中军训感想800字
2014/02/23 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
电工生产实习心得体会
2016/01/22 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
mysql数据库实现设置字段长度
2022/06/10 MySQL