一个奇葩的最短的 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 相关文章推荐
firefox下对ajax的onreadystatechange的支持情况分析
Dec 14 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
Mar 21 Javascript
直接在JS里创建JSON数据然后遍历使用
Jul 25 Javascript
浅谈JavaScript的事件
Feb 27 Javascript
js游戏人物上下左右跑步效果代码分享
Aug 28 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
JavaScript实现分页效果
Mar 28 Javascript
关于express与koa的使用对比详解
Jan 25 Javascript
Angular设置别名alias的方法
Nov 08 Javascript
深入了解JavaScript代码覆盖
Jun 13 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
Sep 25 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 危险函数解释 分析
2009/04/22 PHP
php里array_work用法实例分析
2015/07/13 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
浅析JavaScript中var that=this
2017/02/17 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
Python多线程学习资料
2012/12/19 Python
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
python如何读写csv数据
2018/03/21 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python各种扩展名区别点整理
2020/02/27 Python
企业人事任命书
2014/06/05 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
酒店宣传语大全
2015/07/13 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers