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 select下拉框操作常用方法
Nov 09 Javascript
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
Mar 01 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
Nov 19 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
Nov 30 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
Mar 12 Javascript
浅谈javascript中return语句
Jul 15 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
js遍历map javaScript遍历map的简单实现
Aug 26 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
Feb 22 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
关于vue v-for循环解决img标签的src动态绑定问题
Sep 18 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 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 数组基础知识小结
2010/08/20 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
利用javascript查看html源文件
2006/11/08 Javascript
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python处理JSON数据并生成条形图
2016/08/05 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
详解python之heapq模块及排序操作
2019/04/04 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
资产评估专业大学生求职信
2013/09/29 职场文书
举起手来观后感
2015/06/09 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python