一个奇葩的最短的 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插件之多图片异步上传
Oct 20 Javascript
Javascript 函数parseInt()转换时出现bug问题
May 20 Javascript
微信小程序  action-sheet详解及实例代码
Nov 09 Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 Javascript
解析微信JS-SDK配置授权,实现分享接口
Dec 09 Javascript
Angular JS 生成动态二维码的方法
Feb 23 Javascript
JS中cookie的使用及缺点讲解
May 13 Javascript
JavaScript中常用的简洁高级技巧总结
Mar 10 Javascript
vue项目首屏打开速度慢的解决方法
Mar 31 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
Feb 13 Javascript
vue-router 路由传参用法实例分析
Mar 06 Javascript
vue设置默认首页的操作
Aug 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
PHP 如何向 MySQL 发送数据
2006/10/09 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
可输入的下拉框
2006/06/19 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
解决Python中回文数和质数的问题
2019/11/24 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
python利用opencv实现颜色检测
2021/02/23 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
PyQt 如何创建自定义QWidget
2021/03/24 Python
物联网工程专业推荐信
2014/09/08 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
财务会计实训报告
2014/11/05 职场文书
2014年应急工作总结
2014/12/11 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书