一个奇葩的最短的 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 1.0.4 - New Wave Javascript(js源文件)
Jan 15 Javascript
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
jquery的index方法实现tab效果
Feb 16 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
Mar 05 Javascript
浅谈JavaScript字符集
May 22 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
Jul 18 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
Dec 23 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
Aug 22 Javascript
浅谈Vue Element中Select下拉框选取值的问题
Mar 01 Javascript
vue.js将时间戳转化为日期格式的实现代码
Jun 05 Javascript
vue elementUI tree树形控件获取父节点ID的实例
Sep 12 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
图形数字验证代码
2006/10/09 PHP
Php Cookie的一个使用注意点
2008/11/08 PHP
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
项目实践之javascript技巧
2007/12/06 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
python3实现点餐系统
2019/01/24 Python
django框架模板语言使用方法详解
2019/07/18 Python
python爬虫增加访问量的方法
2019/08/22 Python
python实现超市商品销售管理系统
2019/10/25 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
Django如何实现防止XSS攻击
2020/10/13 Python
苹果美国官方商城:Apple美国
2016/08/24 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
餐饮商业计划书范文
2014/04/29 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
python中的被动信息搜集
2021/04/29 Python