一个奇葩的最短的 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 相关文章推荐
JS字符串函数扩展代码
Sep 13 Javascript
jQuery.extend 函数的详细用法
Jun 27 Javascript
web css实现整站样式互相切换
Oct 29 Javascript
探讨js中的双感叹号判断
Nov 11 Javascript
javaScript如何生成xmlhttp
Dec 16 Javascript
jQuery元素的隐藏与显示实例
Jan 20 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
Sep 10 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
Apr 27 Javascript
Angularjs添加排序查询功能的实例代码
Oct 24 Javascript
详解使用React制作一个模态框
Mar 14 Javascript
详解Node.js一行命令上传本地文件到服务器
Apr 22 Javascript
VSCode使用之Vue工程配置eslint
Apr 30 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
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
Python NumPy库安装使用笔记
2015/05/18 Python
python交互式图形编程实例(二)
2017/11/17 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
Django框架反向解析操作详解
2019/11/28 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
小学教师自我鉴定范文
2014/03/20 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
世界红十字日活动总结
2015/02/10 职场文书
礼仪培训心得体会
2016/01/22 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
Python PIL按比例裁剪图片
2022/05/11 Python