判断浏览器的javascript版本的代码


Posted in Javascript onSeptember 03, 2010

他老人家说将所要执行的代码放在如< script language="JavaScript1.2" >所示嵌套下。但是当问到检测javascript版本时,得到如下代码:

var JS_ver = []; 
(Number.prototype.toFixed)?JS_ver.push("1.5"):false; 
([].indexOf && [].forEach)?JS_ver.push("1.6"):false; 
((function(){try {[a,b] = [0,1];return true;}catch(ex) {return false;}})())?JS_ver.push("1.7"):false; 
([].reduce && [].reduceRight && JSON)?JS_ver.push("1.8"):false; 
("".trimLeft)?JS_ver.push("1.8.1"):false; 
JS_ver.supports = function() 
{ 
if (arguments[0]) 
return (!!~this.join().indexOf(arguments[0] +",") +","); 
else 
return (this[this.length-1]); 
} 
alert("Latest Javascript version supported: "+ JS_ver.supports()); 
alert("Support for version 1.7 : "+ JS_ver.supports("1.7"));

这个脚本,既能通过检测特征来检测JavaScript版本,还能检查特定的Javascript版本所支持的特性。
得到了结果,我们还是看下此系统是如何检测javascript版本的吧,于是将其代码抽取出来(抽取过程相当纠结),得到如下所示代码:
<script type="text/javascript"> 
var n = navigator; 
var u = n.userAgent; 
var apn = n.appName; 
var v = n.appVersion; 
var ie = v.indexOf('MSIE ') 
if(ie > 0){ 
apv = parseInt(i = v.substring(ie + 5)); 
if(apv > 3) { 
apv = parseFloat(i); 
} 
}else{ 
apv = parseFloat(v); 
} 
var isie = (apn == 'Microsoft Internet Explorer'); 
var ismac = (u.indexOf('Mac') >= 0); 
var javascriptVersion = "1.0"; 
if(String && String.prototype){ 
javascriptVersion = '1.1'; 
if(javascriptVersion.match){ 
javascriptVersion = '1.2'; 
var tm = new Date; 
if(tm.setUTCDate){ 
javascriptVersion = '1.3'; 
if(isie && ismac && apv >= 5) javascriptVersion = '1.4'; 
var pn = 0; 
if(pn.toPrecision){ 
javascriptVersion = '1.5'; 
a = new Array; 
if(a.forEach){ 
javascriptVersion = '1.6'; 
i = 0; 
o = new Object; 
tcf = new Function('o','var e,i=0;try{i=new Iterator(o)}catch(e){}return i'); 
i = tcf(o); 
if(i && i.next) { 
javascriptVersion = '1.7'; 
} 
} 
} 
} 
} 
} 
alert(javascriptVersion); 
</script>

代码实现原理:根据不同版本的javascript对于一些特定函数的支持不同从而判断其版本所在。其中仅对1.4版本有一个特殊处理。
Javascript 相关文章推荐
JQuery+JS实现仿百度搜索结果中关键字变色效果
Aug 02 Javascript
js单向链表的具体实现实例
Jun 21 Javascript
js onload处理html页面加载之后的事件
Oct 30 Javascript
使图片旋转的3种解决方案
Nov 21 Javascript
js数组方法扩展实现数组统计函数
Apr 09 Javascript
JavaScript获取function所有参数名的方法
Oct 30 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
Apr 18 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
简单的vue-resourse获取json并应用到模板示例
Feb 10 Javascript
Angular2开发——组件规划篇
Mar 28 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
Jul 17 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
Sep 03 #Javascript
JavaScript的类型简单说明
Sep 03 #Javascript
JavaScript类和继承 this属性使用说明
Sep 03 #Javascript
JavaScript类和继承 prototype属性
Sep 03 #Javascript
用Javascript实现Sleep暂停功能代码
Sep 03 #Javascript
javascript 仿QQ滑动菜单效果代码
Sep 03 #Javascript
原生javascript实现图片轮播效果代码
Sep 03 #Javascript
You might like
php email邮箱正则
2008/10/08 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
php实现购物车功能(上)
2020/07/23 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
PHP实现的策略模式示例
2019/03/20 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
Javascript的&amp;&amp;和||的另类用法
2014/07/23 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
Python 字典与字符串的互转实例
2017/01/13 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
Python 爬虫的原理
2020/07/30 Python
Python常用外部指令执行代码实例
2020/11/05 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
C#怎么让一个窗口居中显示?
2015/10/20 面试题
自考生自我鉴定范文
2013/10/01 职场文书
个人简历中的自我评价范例
2013/10/29 职场文书
会计电算化个人自我评价
2013/11/17 职场文书
办公室前台岗位职责
2014/01/04 职场文书
乔迁宴答谢词
2014/01/21 职场文书
财务会计自荐信范文
2014/02/21 职场文书
《植物妈妈有办法》教学反思
2014/02/25 职场文书
化学教育专业求职信
2014/07/08 职场文书
学生党员批评与自我批评
2014/10/15 职场文书