判断浏览器的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选择没有colspan属性的td的代码
Jul 06 Javascript
Jquery为单选框checkbox绑定单击click事件
Dec 18 Javascript
jquery实现通用版鼠标经过淡入淡出效果
Jun 15 Javascript
如何使用jquery实现文字上下滚动效果
Oct 12 Javascript
详解vue-router 2.0 常用基础知识点之router-link
May 10 Javascript
vue中appear的用法
Aug 17 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
JavaScript中发出HTTP请求最常用的方法
Jul 12 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 Javascript
ionic使用angularjs表单验证(模板验证)
Dec 12 Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 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获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
php流量统计功能的实现代码
2012/09/29 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
js中的this关键字详解
2013/09/25 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
基于Python实现扑克牌面试题
2019/12/11 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
python自动从arxiv下载paper的示例代码
2020/12/05 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
《童趣》教学反思
2014/02/19 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
政治表现评语
2014/05/04 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
工程部岗位职责范本
2015/04/11 职场文书
会议新闻稿
2015/07/17 职场文书
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫