一个奇葩的最短的 IE 版本判断JS脚本


Posted in Javascript onMay 28, 2014

使用 conditional comment 来判断 IE 的版本。嗯,是早早有人提出,但没有认真看代码。昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱。今天看到 Paul Irish 也提起,那么,推荐一下吧。这是作者博客上写的:

// ----------------------------------------------------------
// A short snippet for detecting versions of IE in JavaScript
// without resorting to user-agent sniffing
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
//     ie === undefined
// If you're in IE (>=5) then you can determine which version:
//     ie === 7; // IE7
// Thus, to detect IE:
//     if (ie) {}
// And to detect the version:
//     ie === 6 // IE6
//     ie > 7 // IE8, IE9 ...
//     ie < 9 // Anything less than IE9
// ----------------------------------------------------------
// UPDATE: Now using Live NodeList idea from @jdalton
var ie = (function(){
    var undef,
        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 : undef;
}());

注意一下这个 while 语句。是我觉得最有趣的。对于逗号操作符。我也不熟悉,还只是停留在像变量定义的用法上。比如:

var  a= 'b', c = 'd', e = 'f';
var obj = {
 a: 'b',
 c: 'd',
 e: 'f'
}

问了工友 @kangpangpang,再查了一下书。其实这个比较少见。通常是返回最后一个值。
var a = (1,2,3,5,6,0,9,4); // a === 4

嗯,大概就是这样。挺有趣的。
Javascript 相关文章推荐
分享10篇优秀的jQuery幻灯片制作教程及应用案例
Apr 16 Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
javascript时间函数基础介绍
Mar 28 Javascript
js仿百度贴吧验证码特效实例代码
Jan 16 Javascript
谈谈JavaScript中function多重理解
Aug 28 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
Oct 27 Javascript
初步使用bootstrap快速创建页面
Mar 03 Javascript
JS+CSS3制作炫酷的弹窗效果
Nov 08 Javascript
Bootstrap组合上、下拉框简单实现代码
Mar 06 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
May 11 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
Oct 27 Javascript
深入了解Vue3模板编译原理
Nov 19 Vue.js
JS中使用Array函数shift和pop创建可忽略参数的例子
May 28 #Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
May 28 #Javascript
node.js Web应用框架Express入门指南
May 28 #Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
May 28 #Javascript
浅析JavaScript基本类型与引用类型
May 28 #Javascript
最短的IE判断var ie=!-[1,]分析
May 28 #Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
May 27 #Javascript
You might like
理解php原理的opcodes(操作码)
2010/10/26 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
基于python socketserver框架全面解析
2017/09/21 Python
python视频按帧截取图片工具
2019/07/23 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
如何用JQuery进行表单验证
2013/05/29 面试题
laravel使用redis队列实例讲解
2021/03/23 PHP
2014年机关植树节活动方案
2014/02/27 职场文书
敬老院活动总结
2014/04/28 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript