作者:汪娇娇
日期:2016.8.4
顾名思义,User Agent中文名就是用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。知道了这些就能判断使用的是哪个平台或终端,后续撸代码也就能更好满足需求了。
userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。
一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。
例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。
注:用户代理头:user-agent header
语法:
navigator.userAgent
实例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script>
console.log(navigator.userAgent);
</script>
</html>
我是用谷歌浏览器打开的,然后log出的信息如下所示:
如果模拟手机模式(iPhone6)的话,log出来的结果又是不一样的:
基于好多项目都要用到UA,所以就封装了个小函数,拿起来就用就方便多了。
function parseUA(UA) {
UA = UA || navigator.userAgent;
return {
isIOS: !!UA.match(/iOS|iPad|iPhone/i),
isAndroid: !!UA.match(/Android/i),
isMobile: !!UA.match(/iOS|iPad|iPhone|Android|windows Phone/i),
isQQ: !!UA.match(/qq/i),
isWeixin: !!UA.match(/micromessenger/i),
isWeibo: !!UA.match(/weibo/i)
};
}
调用的代码如下:
var ua=parseUA();
if (ua.isMobile) {
console.log("isMobile");
}else if (ua.isWeixin || ua.isQQ) {
console.log("isWeixin and isQQ");
} else if (ua.isIOS) {
console.log("isIOS");
}else {
console.log("isAndroid");
}
最后,如若哪里有问题,还请轻喷,但是欢迎指出大家一起交流(*^__^*) !