假设你真的需要检测浏览器的类型,使用JavaScript非常easy达到。

View
Demo

Download
Source from GitHub

JavaScript有一个navigator的标准对象,它包括了关于浏览器使用的信息。

navigator对象由非常多属性。可是userAgent属性---一个字符串就已经包括了浏览器、操作系统以及其他我们须要的全部信息。

假设须要显示navigator.userAgent的值。仅仅须要选择以下的一种的方式就能够:

Alert

// Display in an alert box
alert(navigator.userAgent);

火狐30在win7上的navigator.userAgent值。

Document.write

// Write it in the HTML document
document.write(navigator.userAgent);

console.log

// Display it in the browser's developer tool
// This is ideal
// Use console.log() when you're developing/experimenting JavaScript
console.log(navigator.userAgent);

对于IE11,输出例如以下

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MASM; .NET4.0C; .NET4.0E; rv:11.0) like Gecko

正如你看到的。使用userAgent.navigator的问题在于。它是一串非常长的字符串,而且可读性不好。

所以。假设我想得到想要的信息,或者把它给用户看,我首先,我要解析这个字符串。问题是我对于正則表達式的使用(在其它一些方面)显得无能为力。所以我非常乐意使用Darcy Clarke写的Detect.js JavaScript 程序库。

Detect.js可以将一个字符串解析为一个可读和可操作的JavaScript对象。为了显示浏览器的名称、版本号以及所用的操作系统,可參考例如以下代码:

// Create 'user' object that will contain Detect.js stuff
// Call detect.parse() with navigator.userAgent as the argument
var user = detect.parse(navigator.userAgent); // Display some property values in my browser's dev tools console
console.log(
user.browser.family
user.browser.version
user.os.name
);

Firebug, 将看到:

Firefox 30 Windows 7

同一台机器上。在Google开发人员工具中的结果是:

Chrome 35 Windows 7

能够使用条件语句来针对一个特定的浏览器,比如:仅仅想针对Safari桌面浏览器

if (user.browser.family === 'Safari') {
alert('You\'re using the Safari browser');
}

全部被解析过的属性表:

注意:假设属性不能被解析,则其值为null或者undefined。假设你想把这些信息给你的用户看,那么你就应该对于可能出现null或者undefined的值地方条件推断。

使用JavaScript检测浏览器的更多相关文章

  1. Javascript检测浏览器对CSS属性的支持 /* supports */

    //检测浏览器对CSS属性的支持 supports = (function() { var div = document.createElement('div'), vendors = 'Khtml ...

  2. 用 JavaScript 检测浏览器在线/离线状态(JavaScript API — navigator.onLine)

    如今HTML5 移动应用或 Web app 中越来越普遍的使用了离线浏览技术,所以用 JavaScript 检测浏览器在线/离线状态非常常见. 无论浏览器是否在线,navigator.onLine 属 ...

  3. javascript检测浏览器的缩放状态实现代码 是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放)

    这里所说的缩放不是指浏览器大小的缩放,而是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放).检测这种缩放有很种方法,QQ空间都通过flash来检测浏览器是否处于缩放.这里提供java ...

  4. [译]JavaScript检测浏览器前缀

    原文地址: Detect Vendor Prefix with JavaScript 不管浏览器私有前缀的现状如何,我们还是要与之为伴,并且有时候还需要利用它来做一些事情.这些前缀可以用于CSS(比如 ...

  5. javascript 检测浏览器类型和版本的代码

    方法1:对象/特征检测法 该方法是一种判断浏览器能力(而非浏览器的确切型号)的通用方法.大部分JS专家认为这个方法最合适,因为他们认为按照该方法所编写的脚本是经得起未来考验的. //获取IE浏览器的版 ...

  6. JavaScript检测浏览器

    Detect Browser <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  7. 检测浏览器版本类型的JavaScript代码,终极版

    下面的JavaScript代码,不仅可以判断PC端浏览器类型,还可以判断安卓.iOS.其他智能手机.平板电脑或游戏系统. 说废话貌似不是我的风格哈,直接上代码吧: var client = funct ...

  8. javascript检测当前浏览器是否为微信浏览器

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  9. [转]JavaScript快速检测浏览器对CSS3特性的支持

    转自:https://yuguo.us/weblog/detect-css-support-in-browsers-with-javascript/ ------------------------- ...

随机推荐

  1. SlidingMenu开源项目滑动界面的实现总结

    先上图 须要准备的是先得在GitHub上下载ActionBarSherlock-master.zip,和SlidingMenu-master.zip这两个开源文件,然后解压这两个包,SlidingMe ...

  2. The mell hall——坑爹

    The mell hall 题目描述 In HUST,there are always manystudents go to the mell hall at the same time as soo ...

  3. HDU1071 The area 【积分】

    The area Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  4. lightoj1038(期望dp)

    给定一个数字d,随机选择一个d的约数,然后让d除以这个约数,形成新的d,不断继续这个步骤,知道d=1为止, 要我们求将d变为1的期望次数 设d1,d2...dj是除以约数后,形成的行的d,且dj==d ...

  5. php-GD库函数(三)

    <?php //imagefilledellipse — 画一椭圆并填充 /*bool imagefilledellipse ( resource $image , int $cx , int ...

  6. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  7. Chrome应用技巧之代码整理。

    我们有时候在看别人站点代码时往往是经过压缩的,代码都在一行上了,调试非常是困难,今天给大家介绍一种基本Chrome浏览器的代码整理方法.请看图:

  8. JSF教程(9)——生命周期之Process Validations Phase

    在这个过程其中JSF的实现者使用processValidators方法处理全部在tree中的组件中注冊的验证器.验证的过程就是通过每一个组件已有的规则对其已经保存的值进行校验,同一时候也对输入的值进行 ...

  9. Ceph更多Mon 更多mds

    1.当前状态 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdWpfbW9zcXVpdG8=/font/5a6L5L2T/fontsize/400/fill ...

  10. Sliverlight之 画刷

    1,5种画刷 (见Project15) (1)TextBlock控件中的Forground和BackGround属性是一个什么对象?它在前台的完整的写法是什么?(实际是.net做了一个转换,可以直接写 ...