用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图片向右一张张滚动效果实例代码
Nov 23 Javascript
json实现前后台的相互传值详解
Jan 05 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
Jan 27 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
Apr 10 Javascript
基于JavaScript实现网页倒计时自动跳转代码
Dec 28 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
Nov 07 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 Javascript
vue-swiper的使用教程
Aug 30 Javascript
vue实现滑动超出指定距离回顶部功能
Jul 31 Javascript
Vue开发环境中修改端口号的实现方法
Aug 15 Javascript
vue 使用post/get 下载导出文件操作
Aug 07 Javascript
vue常用高阶函数及综合实例
Feb 25 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缓存技术介绍
2006/11/25 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
php使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
Javascript &amp; DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
python 实现在txt指定行追加文本的方法
2018/04/29 Python
点球小游戏python脚本
2018/05/22 Python
对Python中画图时候的线类型详解
2019/07/07 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
智能电子应届生求职信
2013/11/10 职场文书
历史系自荐信范文
2013/12/24 职场文书
产品质量承诺书
2014/03/27 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
八年级英语教学反思
2016/02/15 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL