一个奇葩的最短的 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 相关文章推荐
jQuery 页面 Mask实现代码
Jan 09 Javascript
js对象的构造和继承实现代码
Dec 05 Javascript
JavaScript起点(严格模式深度了解)
Jan 28 Javascript
基于JQuery 选择器使用说明介绍
Apr 18 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
Jul 04 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
Jun 08 Javascript
用图片替换checkbox原始样式并实现同样的功能
Nov 15 Javascript
vue实现分页组件
Jun 16 Javascript
基于vue 动态菜单 刷新空白问题的解决
Aug 06 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 screw加密php源代码
2013/06/20 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
python中的错误处理
2016/04/10 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
python实现桌面气泡提示功能
2019/07/29 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
如何保障Web服务器安全
2014/05/05 面试题
工业设计专业个人求职信范文
2013/12/28 职场文书
九年级家长会邀请函
2014/01/15 职场文书
消防安全标语
2014/06/07 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android