一个奇葩的最短的 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 AjaxQueue改进步骤
Oct 06 Javascript
JavaScript添加随滚动条滚动窗体的方法
Feb 23 Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
Aug 01 Javascript
微信小程序 动态绑定数据及动态事件处理
Mar 14 Javascript
js实现本地时间同步功能
Aug 26 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
Dec 28 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 Javascript
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
Vue侦测相关api的实现方法
May 22 Javascript
vue输入框使用模糊搜索功能的实现代码
May 26 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
Oct 02 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
PHP5 面向对象(学习记录)
2009/12/02 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
2019/05/16 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python调用百度REST API实现语音识别
2018/08/30 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
详解Python文件修改的两种方式
2019/08/22 Python
Python3 元组tuple入门基础
2020/02/09 Python
会计自荐书
2013/12/02 职场文书
建筑个人求职信范文
2014/01/25 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
群众路线表态发言材料
2014/10/17 职场文书
病人慰问信范文
2015/02/15 职场文书
同学聚会通知短信
2015/04/20 职场文书
员工离职证明范本
2015/06/12 职场文书
神秘岛读书笔记
2015/07/01 职场文书
学生会干部任命书
2015/09/21 职场文书
MySQL基础(一)
2021/04/05 MySQL
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL
mysql中关键词exists的用法实例详解
2022/06/10 MySQL