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 相关文章推荐
当前页禁止复制粘贴截屏代码小集
Jul 24 Javascript
使用coffeescript编写node.js项目的方法汇总
Aug 05 Javascript
使用Node.js处理前端代码文件的编码问题
Feb 16 Javascript
jQuery操作动态生成的内容的方法
May 28 Javascript
jQuery实现文字自动横移
Jan 08 Javascript
基于JavaScript实现本地图片预览
Feb 08 Javascript
深究AngularJS中$sce的使用
Jun 12 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
Jan 13 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
vue+ts下对axios的封装实现
Feb 18 Javascript
js实现跳一跳小游戏
Jul 31 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 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的引用计数机制
2013/06/14 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
php中的动态调用实例分析
2015/01/07 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
php结合js实现多条件组合查询
2019/05/28 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
在Python中操作字典之clear()方法的使用
2015/05/21 Python
python实现八大排序算法(2)
2017/09/14 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
python如何实现DES加密
2020/09/21 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
Linux Interview Questions For software testers
2013/05/17 面试题
应届生自我鉴定
2013/12/11 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
盗窃案辩护词
2015/05/21 职场文书
企业愿景口号
2015/12/25 职场文书