用优雅简短的JavaScript判断IE版本号
来源:互联网 发布:广电网络wifi密码修改 编辑:程序博客网 时间:2024/05/01 06:59
平常一般判断IE版本号多数都是使用正则去匹配USER_AGENT
,总觉得这个麻烦且有时不太好使,今天在Github Gist上看到一段优雅简短的JavaScript代码,用于判断IE版本号,向后兼容,调用方便。该JS使用到了IE条件注释,对IE条件注释还混淆不清的童鞋可前往这里看看:《IE浏览器条件注释if IE详解》。
- // ----------------------------------------------------------
- // 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:
- // ieVersion === false
- // If you're in IE (>=5) then you can determine which version:
- // ieVersion === 7; // IE7
- // Thus, to detect IE:
- // if (ieVersion) {}
- // And to detect the version:
- // ieVersion === 6 // IE6
- // ieVersion > 7 // IE8, IE9 ...
- // ieVersion < 9 // Anything less than IE9
- // ----------------------------------------------------------
- // UPDATE: Now using Live NodeList idea from @jdalton
- var ieVersion = (function() {
- var 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 : false;
- })();
思路很好,新增一个div
元素,然后通过使用while
循环判断使用IE条件注释的div
标签中是否含有i
标签,如果含有,v
则自增1,直到浏览器无法读取到i
标签为止。此时的v
值如果大于4则为IE的实际版本号,否则v
就是小于IE5的IE浏览器或者非IE浏览器,返回false
。
另外,此中的while
循环使用的也非常巧妙,说实话,我以前没见过这种用法。查了一下书本,实际上这是一个逗号操作符,逗号操作符多用于声明多个变量。但除此之外,逗号操作符还可以用于赋值,返回的是表达式最后一个值,举个例子:
- var num = (0,5,6,7,2,9);
- console.log(num); // 此时num返回的是最后一个值,即是9
实际上,代码中的while循环可以理解为do-while循环,效果是一样的:
- do {
- div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->';
- } while (all[0]);
参考资源:
- A short snippet for detecting versions of IE in JavaScript
- 《JavaScript高级程序设计(第3版)》
在Win8.1下使用IE11测试了下,依然未识别,返回为false
原文地址:http://www.liveme.org/ie-detection-by-js.html
0 0
- 用优雅简短的JavaScript判断IE版本号
- 用 javascript 判断 IE 版本号
- 用 javascript 判断 IE 版本号
- 用 javascript 判断 IE 版本号
- javascript判断是否IE的最简短代码
- js判断IE非IE的几种简短方法
- javascript判断IE浏览器和获取IE版本号
- 一个简短的脚本判断浏览器是否是IE
- JS判断IE浏览器的最简短方法
- JS判断IE浏览器的最简短方法
- javascript 判断 ios 的版本号
- Javascript获取完整的IE版本号
- 用javascript判断浏览器的类型和版本号
- js判断ie浏览器版本号
- 简短的Javascript代码分析
- Javascript判断对象和字符串为空的优雅写法
- 关于javascript判断不同浏览器的类型和版本号
- JavaScript判断IE的最短写法
- java HashSet存储自定义对象
- The Smallest Distributed System
- 移植Linux根文件系统之yaffs2
- NFS再优化
- DB2日志的管理
- 用优雅简短的JavaScript判断IE版本号
- 49.在领导面前不防装装嫩
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 选择排序算法
- 嵌入视频2
- struts2 ongl使用
- C语言转义字符和格式控制符参考
- 判断是否为对称的字符串(回文数)
- Netstat命令详解