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 图片上一张下一张链接效果代码
Mar 12 Javascript
基于jquery的获取浏览器窗口大小的代码
Mar 28 Javascript
js Dialog 实践分享
Oct 22 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
Feb 10 Javascript
javascript实现十秒钟后注册按钮可点击的方法
May 13 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
js过滤HTML标签完整实例
Nov 26 Javascript
Node.js实现连接mysql数据库功能示例
Sep 15 Javascript
详解10分钟学会vue滚动行为
Sep 21 Javascript
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
vue实现简单的登录弹出框
Oct 26 Javascript
JS中多层次排序算法的实现代码
Jan 06 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
php生成RSS订阅的方法
2015/02/13 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
js对象的构造和继承实现代码
2010/12/05 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
JsRender for object语法简介
2014/10/31 Javascript
js脚本实现数据去重
2014/11/27 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
高级文秘工作总结的自我评价
2013/09/28 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
个人委托书格式
2014/04/04 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
总结会主持词
2015/07/02 职场文书
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android