检测浏览器版本类型的JavaScript代码,终极版
下面的JavaScript代码,不仅可以判断PC端浏览器类型,还可以判断安卓、iOS、其他智能手机、平板电脑或游戏系统。
说废话貌似不是我的风格哈,直接上代码吧:
var client = function(){ //呈现引擎 var engine ={ ie : 0, gecko : 0, webkit : 0, khtml : 0, opera : 0, ver : null }; //浏览器 var browser = { ie : 0, firefox :0, safari : 0, konq :0, opera : 0, chrome : 0, ver : null }; var system ={ win :false, max : false, x11 : false, //移动设备 iphone : false , ipod : false, ipad : false, ios : false, android : false, nokiaN : false, winMoble : false, //游戏系统 wii :false, ps : false }; var ua =navigator.userAgent; //Opera 9以后出现了两种字符串代理的方式 一种方式就是将自身标识另外一个浏览器 另外一种方式就是标志自己为firefox或者IE //在后面这种情况下 用户代理字符串实际上与其他浏览器返回的相同--既没有opera的字样,也不包含opera的版本信息 //因此判断浏览器先从opera开始 if(winddow.opera){ engine.ver = browser.ver = window.opera.version(); egine.opera = browser.opera = parseFloat(engine.ver); //第二个检测WebKit 是因为WebKit的用户代理字Gecko"和"HTMKL"的字符串 所以如果首先检测他们都有错误的结论 }else if (/AppleWebKit\/(\S+)/.test(ua)){ engin.ver = RegExp["$1"]; engine.webkit = parseFloat(engine.ver); //确定是chrome还是Safari if(/Chrome\/(\S+)/.test(ua){ browser.ver = RegExp["$1"]; browser.chrome = parseFloat(brower.ver); }else if(/Version\/(+\S)/.test(ua)){//safari 3.0后增加了Version属性 browser.ver = RegExp["$1"]; browser.safari = parseFloat(brower.ver); }else{ var safariVersion = 1; if(engine.webkit<100){ safariVersion = 1; }else if(engine.ver<312){ safariVersion = 1.2; }else if(engine.ver<412){ safariVersion = 1.3; }else{ safariVersion = 2; } browser.safari = browser.ver = safariVersion; } }else if(/KHTML\/(\S+)/.test(ua)||/Konqueror\/([^;]+)/.test(ua)){//Linux下浏览器 engine.ver = browser.ver = RegExp["$1"]; engine.khtml = parseFloat(engine.ver); }else if(/rv:([^\)]+\) Gocko\/\d{8}/.test(ua)){ engine.ver = RegExp["$1"]; engine.gecko = parseFloat(engine.ver); //确定不是firefox if(/Firefox\/(\S+)/.test(ua){ browser.ver = RegExp["$1"]; browser.firefox = parseFloat(browser.ver); } }else if (/MSIE ([^;]+)/.test(ua)){ engine.ver = browser.ver = RegExp["$1"]; engine.ie = browser.ie = parseFloat(engine.ver); } //检测浏览器 browser.ie =engine.ie; browser.opera = engine.opera; var p = navigator.platform; system.win = p.indexOf("Win")==0; system.mac = p.indexOf("Mac")==0; system.x11 = (p=="x11")||p.indexOf("Linux")==0; if(system.win){ if(/Win(?:dow)?([^do]{2}\s?(\d+\.\d+)?/.test(ua)){ if(RegExp["$1"]=="NT"){ switch(RegExp["$2"]){ case "5.0" : system.win = "2000"; break; case "5.1" : system.win = "xp"; case "6.0" : system.win = "Vista"; break; case "6.1" : system.win = "7"; break; default : system.win ="NT"; break; } }else if(RegExp["$1"]=="9x"){ system.win = "ME"; }else{ system.win = RegExp["$1"]; } } } //移动设备 system.iphone = ua.indexOf("iPhone")>-1; system.ipod = ua.indexOf("iPod")>-1; system.ipad = ua.indexOf("iPad")>-1; system.nokiaN = ua.indexOf("nokiaN")>-1; //win Mobile if(system.win == "CE"){ system.winMobile = system.win; }else if(system.win = "Ph"){ if(/Windows Phone OS (\d+\_\d+)/.test(ua)){ system.win = "Phone"; system.winMobile parseFloat(RegExp["$1"]); } } //检测ios版本 // if(system.mac && ua.indexOf("Mobile")>-1){ if(/CPU (?:iPhone)?OS (\d+\_\d+)/.test(ua){ system.ios = parseFloat(RexExp.$1.replace("_",".")); }else { system.ios = 2 ;//不能真正检查出来,所以猜测出来一个结果 } } //检查安卓版本 // if(/Android (\d+/_\d+)/.test(ua)){ system.andriod = parseFloat(RegExp.$1); } //游戏系统 system.wii = us.indexOf("Wii")>-1; system.ps = /playstation/i.test(ua); //返回对象 return { engine : engine, browser : browser, system : system } }
当然,你也可以自己构造正则表达式,匹配us对象,判断其他的类型哦~
呵呵,撸走代码不要忘了点赞哦~(*^_^*)
检测浏览器版本类型的JavaScript代码,终极版的更多相关文章
- javascript检测浏览器的缩放状态实现代码 是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放)
这里所说的缩放不是指浏览器大小的缩放,而是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放).检测这种缩放有很种方法,QQ空间都通过flash来检测浏览器是否处于缩放.这里提供java ...
- ASP.NET MVC中检测浏览器版本并提示下载更新
如果网站使用html5.css3.自适应等新特性,可能有些浏览器版本不支持.这时候,需要提醒浏览者更新浏览器的版本到最新. 本篇用到的插件为:http://jreject.turnwheel.com/ ...
- js检测浏览器版本代码,兼容ie11
原文:http://blog.csdn.net/tenkin/article/details/11640165 <script type="text/javascript"& ...
- jquery检测浏览器版本
//检测当前浏览器 function browserType() { var brow = $.browser; //console.log(brow); var bInfo = "&quo ...
- JS检测浏览器版本信息(包含IE11),并动态添加样式
<head runat="server"> <meta http-equiv="Content-Type" content="tex ...
- jquery检测浏览器类型
使用jquery如下代码检测浏览器版本时:出问题,在检测IE浏览器,如果版本是IE11时,会出现 $.browser.msie的返回值是false,$.browser.mozilla的返回值是true ...
- 使用JavaScript检测浏览器
假设你真的需要检测浏览器的类型,使用JavaScript非常easy达到. View Demo Download Source from GitHub JavaScript有一个navigator的标 ...
- javascript——处理(获取)浏览器版本、操作系统
javascript——处理(获取)浏览器版本.操作系统 /** * Created by Administrator on 15-1-12. */ function BroswerUtil() { ...
- 浏览器地址栏运行JavaScript代码
这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开头后跟要执行的语句.比如: javascript:alert('hello from ad ...
随机推荐
- nginx 提供静态内容
Serving Static Content 提供静态内容 原文地址:http://nginx.com/resources/admin-guide/serving-static-content/ Th ...
- 简单 TCP/IP 服务功能
本主题使用每台 Windows 计算机上提供的 Echo 和 Quote of the Day 服务.在所有 Windows 版本中都提供了简单 TCP/IP 服务功能.该功能会提供了以下服务:Cha ...
- SQL Server 文件路径
原文:SQL Server 文件路径 系统数据库文件路径 master <drvie>:\program files\microsoft sql server\mssql10.<in ...
- React JS高速新手教程
翻译至官方文档<Tutorial>http://facebook.github.io/react/docs/tutorial.html 转载请注明出处:http://blog.csdn.n ...
- iOS发展- 文件共享(使用iTunes导入文件, 并显示现有文件)
到今天实现功能, 由iTunes导入文件的应用程序, 并在此文档进行编辑的应用. 就像我们平时经常使用 PDF阅读这样的事情, 们能够自己导入我们的电子书. 源代码下载:https://github. ...
- PS 过滤器——运动模糊
%%%%% motion blur clc; clear all; close all; Image=imread('4.jpg'); Image=double(Image); theta=pi/4 ...
- 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)
mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...
- [jQuery1.9]Cannot read property ‘msie’ of undefined错误的解决方法
原文:[jQuery1.9]Cannot read property 'msie' of undefined错误的解决方法 $.browser在jQuery1.9里被删除了,所以项目的js代码里用到$ ...
- Android Push Notifications using Google Cloud Messaging (GCM), PHP and MySQL
http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php- ...
- .net程序调用检测和性能分析工具——DotTrace
DotTrace可以对.net程序进行性能监测,对正在运行的程序和网站监控,主要界面如下: 需要将该工具安装在程序运行的服务器上. 主要用到这个视图,显示了每个方法的时间,下面是反编译出来的代码. P ...