一个奇葩的最短的 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 相关文章推荐
Ext面向对象开发实践(续)
Nov 18 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 Javascript
angular学习之ngRoute路由机制
Apr 12 Javascript
详解JavaScript中的六种错误类型
Sep 21 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
Dec 24 Javascript
彻底理解js面向对象之继承
Feb 04 Javascript
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
微信小程序实现的自定义分享功能示例
Feb 12 Javascript
layer.open的自适应及居中及子页面标题的修改方法
Sep 05 Javascript
js实现坦克大战游戏
Feb 24 Javascript
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自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
js实现轮播图特效
2020/05/28 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
飞利浦法国官网:Philips法国
2019/07/10 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
党员公开承诺书范文
2014/03/25 职场文书
产品委托授权书范本
2014/09/16 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书