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 相关文章推荐
js实现按钮加背景图片常用方法
Nov 01 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
Mar 24 Javascript
举例简介AngularJS的内部语言环境
Jun 17 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 Javascript
JavaScript实现简单的日历效果
Sep 25 Javascript
详解用webpack2搭建angular2的项目
Jun 22 Javascript
Javascript刷新页面的实例
Sep 23 Javascript
JS获取input[file]的值并显示在页面的实现方法
Mar 09 Javascript
浅谈微信页面入口文件被缓存解决方案
Sep 29 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
Oct 12 Javascript
Vue.js组件实现选项卡以及切换特效
Jul 24 Javascript
vue2的 router在使用过程中遇到的一些问题
Apr 13 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 get_meta_tags()函数
2014/05/12 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
Python实现Const详解
2015/01/27 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
介绍一下Java的事务处理
2012/12/07 面试题
售后服务科岗位职责范文
2013/11/13 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
银行求职信怎么写
2014/05/26 职场文书
在职员工证明书
2014/09/19 职场文书
介绍信范文大全
2015/05/07 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL