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入门教程(1) 什么是JS
Jan 31 Javascript
基于jquery的滚动新闻列表
Jun 19 Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
May 30 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
Aug 08 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
Nov 13 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
js使用generator函数同步执行ajax任务
Sep 05 Javascript
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 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 ios推送(代码)
2013/07/01 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
jquery实现拖动效果
2016/08/10 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
浅谈js中的this问题
2017/08/31 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
python通过线程实现定时器timer的方法
2015/03/16 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
基于Python List的赋值方法
2018/06/23 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
深入了解Django中间件及其方法
2019/07/26 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
塔吉特百货公司官网:Target
2017/04/27 全球购物
安全生产中长期规划实施方案
2014/02/21 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书