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 相关文章推荐
jquery 经典动画菜单效果代码
Jan 26 Javascript
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
Jul 26 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
Apr 23 Javascript
js文字横向滚动特效
Nov 11 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
Sep 19 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
Feb 08 Javascript
vue组件name的作用小结
May 23 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
原生JS实现简单的无缝自动轮播效果
Sep 26 Javascript
基于JavaScript的数据结构队列动画实现示例解析
Aug 06 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
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 高手之路(一)
2006/10/09 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
Python2.7读取PDF文件的方法示例
2017/07/13 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python类的继承用法示例
2019/01/31 Python
python关闭占用端口方式
2019/12/17 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
个人自我鉴定写法
2013/11/30 职场文书
大学生最常用的自我评价
2013/12/07 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
《猫》教学反思
2014/02/26 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
运动会200米广播稿
2015/08/19 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python