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 相关文章推荐
ext中store.load跟store.reload的区别示例介绍
Jun 17 Javascript
JavaScript中逗号运算符介绍及使用示例
Mar 13 Javascript
基于js实现投票的实例代码
Aug 04 Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
Nov 29 Javascript
node vue项目开发之前后端分离实战记录
Dec 13 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
May 28 Javascript
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 Javascript
json 带斜杠时如何解析的实现
Aug 12 Javascript
JS数组转字符串实现方法解析
Sep 04 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 Javascript
基于Vant UI框架实现时间段选择器
Dec 24 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/09/22 PHP
浅析PHP文件下载原理
2014/12/25 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
JS之小练习代码
2008/10/12 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
2014/09/01 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
Python中__new__与__init__方法的区别详解
2015/05/04 Python
详解python while 函数及while和for的区别
2018/09/07 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
意外伤害赔偿协议书范文
2014/09/23 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
运动会主持词大全
2015/07/02 职场文书
车位出租协议书范本
2016/03/19 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书