js获取浏览器内核、类型、版本以及系统类型
正则表达式:
var rsys = /\b(windows|win32|macintosh|mac os x|adobeair|linux|unix)\b/;
var rkn = /\b(opera|chrome|webkit|safari|msie|firefox|gecko)\b(\s*(version|rv:|\/)*(\d+(\.\d+)*))?/g;
准备:
var r = {}, ua = navigator.userAgent.toLowerCase();
代码:
ua.replace(rsys, function (match, value) {
var object = {
isWinSys: "win",
isMacSys: "mac",
isAirSys: "air",
isUnixSys: "unix",
isLinuxSys: "linux"
};
for (var i in object) {
r[i] = value.indexOf(object[i]) > -1;
}
});
ua.replace(rkn, function (match, type, all, rv, version) {
//match:匹配内容,type:内核类型,all:匹配符以及版本号,rv:匹配符,version:版本号
r["is" + type.charAt(0).toUpperCase() + type.slice(1) + "Kn"] =
r["is" + type.charAt(0).toUpperCase() + type.slice(1) + "Bro"] = version || true;
if (type === "safari") {
if (/applewebkit\/4/.test(ua)) {
r["isSafariKn"] = 2;
}
}
});if (r.isChromeBro) {
r.isSafariBro = false;
}
if (r.isFirefoxBro) {
if (r.isChromeBro || r.isSafariBro || r.isMsieBro) {
r.isFirefoxBro = false;
}
}
r.isWebkitBro = r.isGeckoBro = false;//修复
r.isBrowse32Bit = navigator.platform == "Win32";//是否为32位浏览器
r.isCompatMode = document.compatMode == "CSS1Compat";//是否处于兼容性模式
1、后缀说明:Kn(kernel:内核),Bro(browser:浏览器),Sys(System:系统)。
2、值说明:优先显示版本号,若没有检测到对应的版本号,则默认为真。
3、已在Windows系统下,chrome、firefox、msie中测试通过。
js获取浏览器内核、类型、版本以及系统类型的更多相关文章
- js获取浏览器信息及版本(兼容IE)
获取浏览器信息方法有很多种,但是要是兼容ie旧版本就有点麻烦了,因为很多方法在旧版本ie是不支持的,所以ie我做了单独处理,但是目前还有小问题,就是想显示QQ浏览器,搜狗浏览器..这样的,这样还实现不 ...
- JS获取浏览器名和版本信息
Navigator 对象包含有关浏览器的信息. Navigator 对象属性和方法: <html> <head> <title>JS完整获取浏览器信息</ti ...
- js 获取浏览器内核
<script language="JavaScript" type="text/javascript"> var browser = { ...
- js获取浏览器内核判断终端(是QQ打开还是QQ浏览器打开)
var browser ={ versions: function() { var u = navigator.userAgent, var ua = navigator.userAgent.toLo ...
- js判断浏览器内核和版本(包括手机端设备)
var X, xue;xue = xue || function(expr, fn) { return xue.dom ? xue.dom(expr, fn) : {};};X = xue;wi ...
- js获取浏览器类型和版本信息
bro () { let broName = 'Runing' let strStart = 0 let strStop = 0 let temp = '' let userAgent = windo ...
- js获取浏览器版本信息整理
一.Navigator 对象 JavaScript Navigator 对象包含了有关访问者浏览器的所有信息.接下来我们学习 Navigator 对象的两个属性. appName 保存浏览器类型 ap ...
- js get browser vertion (js获取浏览器信息版本)
1问题:js get browser vertion (js获取浏览器信息版本) 2解决方案 Copy this script into your JavaScript files. It works ...
- JS获取浏览器类型和版本号
JS获取浏览器类型和版本号,增加了IE11的判断. 2015/7/5更新: 简化代码逻辑 var zbrowser = {} var ua = navigator.userAgent.toLowerC ...
随机推荐
- 使用PL/SQL工具比对表结构,同步表结构
需求:Oracle数据库,B库和C库,某些表的表结构不一致,现在要求以C库为标准,同步更新B库表结构PL/SQL 连接到C库, Tools --> Compare User Objects .. ...
- RAC 10.2.0.5,客户端登陆间断遭遇ORA-12545
实验环境: 服务端:OEL 5.7 + Oracle 10.2.0.5 RAC 客户端:Windows 7 + Oracle 11.2.0.1 Client 1.客户端登陆间断遭遇ORA-125 ...
- 【集合框架】JDK1.8源码分析之HashMap(一)
一.前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也 ...
- ORACLE存储过程调用Web Service
1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...
- LinQ C#防注入式攻击实例代码
注入式攻击是Web开放项目中开发人员的第一时间要考虑的问题,下面就我的开发实例分享给大家,有用的的话就点个赞吧. 定義賬戶信息類 public class UserInfors { public st ...
- 转载:《TypeScript 中文入门教程》 4、类
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但这对 ...
- Matlab 之 字符串数组查找
Matlab的优势在于向量操作,字符串操作往往费时费力,但是如果能充分利用Matlab自带的一些函数,也可以取得不错的效果.下面就介绍一下字符串数组查找的小技巧. 字符串数组我通常会选择应用cell格 ...
- 使用TopSelf创建自宿主的Windows服务程序
在传统的Windows服务开发过程中,需要添加一个服务安装程序,里面写安装,启动和停止服务等逻辑.现在,使用TopSelf可以简化这个过程. 首先,继承 ServiceControl 写一个应用服务类 ...
- 一款简洁大气的jquery日期日历插件
本jquery插件名为manhuaDate,暂时只支持jquery 1.9.0以下版本,比如jquery-1.8.3.min.js 查看效果网址:http://keleyi.com/a/bjad/em ...
- require 那点事
require 提供了一个 模块管理的方案 不太熟悉的话挺多暗坑 团队引入 需谨慎 彻底熟悉后 再引入项目 ADM规范 Asynchronous Module Definition - 异步加载模块规 ...