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

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检测浏览器的更多相关文章
- Javascript检测浏览器对CSS属性的支持  /* supports */
		//检测浏览器对CSS属性的支持 supports = (function() { var div = document.createElement('div'), vendors = 'Khtml ... 
- 用 JavaScript 检测浏览器在线/离线状态(JavaScript API — navigator.onLine)
		如今HTML5 移动应用或 Web app 中越来越普遍的使用了离线浏览技术,所以用 JavaScript 检测浏览器在线/离线状态非常常见. 无论浏览器是否在线,navigator.onLine 属 ... 
- javascript检测浏览器的缩放状态实现代码 是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放)
		这里所说的缩放不是指浏览器大小的缩放,而是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放).检测这种缩放有很种方法,QQ空间都通过flash来检测浏览器是否处于缩放.这里提供java ... 
- [译]JavaScript检测浏览器前缀
		原文地址: Detect Vendor Prefix with JavaScript 不管浏览器私有前缀的现状如何,我们还是要与之为伴,并且有时候还需要利用它来做一些事情.这些前缀可以用于CSS(比如 ... 
- javascript 检测浏览器类型和版本的代码
		方法1:对象/特征检测法 该方法是一种判断浏览器能力(而非浏览器的确切型号)的通用方法.大部分JS专家认为这个方法最合适,因为他们认为按照该方法所编写的脚本是经得起未来考验的. //获取IE浏览器的版 ... 
- JavaScript检测浏览器
		Detect Browser <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ... 
- 检测浏览器版本类型的JavaScript代码,终极版
		下面的JavaScript代码,不仅可以判断PC端浏览器类型,还可以判断安卓.iOS.其他智能手机.平板电脑或游戏系统. 说废话貌似不是我的风格哈,直接上代码吧: var client = funct ... 
- javascript检测当前浏览器是否为微信浏览器
		<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ... 
- [转]JavaScript快速检测浏览器对CSS3特性的支持
		转自:https://yuguo.us/weblog/detect-css-support-in-browsers-with-javascript/ ------------------------- ... 
随机推荐
- java设计模式_单例
			public class Singleton { public static void main(String[] args) throws Exception { System.out.printl ... 
- 解决:Could not find debuginfo pkg for dependency package glibc-2.12-1.132.el6_5.3.i686
			场景: (gdb) break main Breakpoint 1 at 0x8048417 (gdb) r Starting program: /usr/local/src/ccode/ch11/s ... 
- a标签的背景图在ie8下不显示的问题
			突然发现临下班时候问题就多, 马上下班了被头头告知线上已经上线很久的活动现在有个兼容性问题, a标签的背景图在ie8下会有不显示的情况. 我自己找了台ie8的机器实验了一下, 发现一切正常, 但是在另 ... 
- Linux cp -a用法
			对于cp -a最主要的用法是在保留原文件属性的前提下复制文件.其实还有个很好的用法,如下: 大家知道linux下复制目录可以通过,cp -r dirname destdir 但是这样复制的目录属性会发 ... 
- Scala Hello 示例
			object ScalaDemo1 { def main(args: Array[String]) { println("Hello,world!"); } } 
- DLNA它 Error, can't findlibavformat ! 解
			DLNA库版本号为libdlna-0.2.4 运行./configure出错: ------------------------------ Error, can't findlibavformat ... 
- Javadoc的Html文件传输chm
			 Javadoc的Html文件转chm 工具下载地址:http://msdn.microsoft.com/en-us/library/ms669985.aspx 两篇相关文章: MyEclipse ... 
- android学习七(创建自己定义控件)
			前面学习的是android的基本控件和布局的使用,可是主要的控件和布局有时候并不能实现复杂的布局.我们来看下各种控件和布局的关系. 可见全部的控件都是直接或者间接的继承自View的,全部的布局都是直接 ... 
- 选择排序java
			先简述选择排序,然后上代码 进行选择排序就是将所有的元素扫描一遍,从中挑选(或者说是选择,这正是这个排序名字的由来)最小的一个元素,将这个最小的元素与最左边的元素交换位置 ,现在最左边的元素就是有序的 ... 
- 用于编译cm-12.0 的 local_manifest.xml文件
			将代码保存为 romservice.xml文件 <?xml version="1.0" encoding="UTF-8"?> <manifes ... 
