一个奇葩的最短的 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 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
May 23 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
Aug 26 Javascript
javascript分页代码实例分享(js分页)
Dec 13 Javascript
js 调用百度地图api并在地图上进行打点添加标注
May 13 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
May 28 Javascript
Vue.js实现简单ToDoList 前期准备(一)
Dec 01 Javascript
原生js实现弹出层登录拖拽功能
Dec 05 Javascript
详解Vue文档中几个易忽视部分的剖析
Mar 24 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
Sep 05 Javascript
微信小程序实现左滑修改、删除功能
Oct 19 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 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
javascript 框架小结 个人工作经验
2009/06/13 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
python操作redis的方法
2015/07/07 Python
浅谈python可视化包Bokeh
2018/02/07 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
大二学生职业生涯规划书
2014/02/05 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
公司员工辞职信范文
2015/05/12 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
地心历险记观后感
2015/06/15 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书