js判断游览器类型及版本号的代码


Posted in Javascript onMay 11, 2014

phpnew blog内置discuz ubb类型的编辑器, 编辑器功能上有在光标处插入, 可在ie11上一直不准确.
今天分析一下, 终于找到原因. 旧版本的js文件写的浏览器判断有异常, 所以导致插入点一直在头部. 今天修复之.

提供一个js函数. 返回一个数组.

function sys_userAgent(){ 
    var userAgent = navigator.userAgent,     
    rMsie = /(msie\s|trident.*rv:)([\w.]+)/,     
    rFirefox = /(firefox)\/([\w.]+)/,     
    rOpera = /(opera).+version\/([\w.]+)/,     
    rChrome = /(chrome)\/([\w.]+)/,     
    rSafari = /version\/([\w.]+).*(safari)/;    
    var browser,version,ua;    
    ua = userAgent.toLowerCase();    
    var match = rMsie.exec(ua);    
    if (match != null) {    
        return { browser : "ie", version : match[2] || "0" };    
    } 
    if (!!window.ActiveXObject || "ActiveXObject" in window){ 
        return { browser : "ie", version : "0"};     
    } 
    var match = rFirefox.exec(ua);    
    if (match != null) {    
        return { browser : "firefox", version : match[2] || "0" };    
    }    
    var match = rOpera.exec(ua);    
    if (match != null) {    
        return { browser : "opera", version : match[2] || "0" };    
    }    
    var match = rChrome.exec(ua);    
    if (match != null) {    
        return { browser : "chrome", version : match[2] || "0" };    
    }    
    var match = rSafari.exec(ua);    
    if (match != null) {    
        return { browser : "safari", version : match[1] || "0" };    
    }    
    if (match != null) {    
        return { browser : "", version : "0" };    
    } 
}

希望对大家有帮助.
编辑器修改的内容还有附件flash加载经常失败的问题修复, 回车问题处理.

Javascript 相关文章推荐
Javascript技术技巧大全(五)
Jan 22 Javascript
JavaScript中标识符提升问题
Jun 11 Javascript
快速学习jQuery插件 Form表单插件使用方法
Dec 01 Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
Dec 13 Javascript
详解js中的apply与call的用法
Jul 30 Javascript
JavaScript实现微信号随机切换代码
Mar 09 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 Javascript
解决vue 绑定对象内点击事件失效问题
Sep 05 Javascript
vue 表单验证按钮事件交由父组件触发的方法
Dec 17 Javascript
解决VUE双向绑定失效的问题
Oct 29 Javascript
js仿京东放大镜效果
Aug 09 Javascript
jquery实现文本框数量加减功能的例子分享
May 10 #Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
May 10 #Javascript
多引号嵌套的变量命名的问题
May 09 #Javascript
javascript中数组的多种定义方法和常用函数简介
May 09 #Javascript
javascript的数组和常用函数详解
May 09 #Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
May 09 #Javascript
实例讲解JS中数组Array的操作方法
May 09 #Javascript
You might like
php下载远程文件类(支持断点续传)
2008/11/14 PHP
Smarty3配置及入门语法
2017/02/22 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
浅谈Javascript事件模拟
2012/06/27 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python与php实现分割文件代码
2017/03/06 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
研究生自我鉴定范文
2013/10/30 职场文书
个人教师自我评价范文
2013/12/02 职场文书
民生工程实施方案
2014/03/22 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
运动会班级前导词
2015/07/20 职场文书
加强党性修养心得体会
2016/01/21 职场文书
比较几种Redis集群方案
2021/06/21 Redis