通过Js判断客户端为PC端还是手持设备

通过Js判断客户端为PC端还是手持设备

原理

Js中获取浏览器信息字符串只要使用navigator.userAgent即可,这样我们再利用indexof来判断版本或其它信息了。

代码实例

1.简化版

function IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod");
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}

2.详细版

var browser={
versions:function(){
var u = navigator.userAgent, app = navigator.appVersion;
return {//移动终端浏览器版本信息
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
if(browser.versions.mobile || browser.versions.ios || browser.versions.android ||
browser.versions.iPhone || browser.versions.iPad){
window.location = "http://m.zhaizhainv.com";
}

3.基本版

js的

alert(navigator.userAgent.toLowerCase());

方式获取浏览器的userAgent信息

扩展

网络爬虫的爬取问题

爬虫请求头中的User-Agent也包含了特殊的标记信息,我们获取到该信息判断是否爬虫,然后返回最佳的SEO页面就可以了。 网络爬虫在发送http请求获取网页数据时也会在头部附加 User-Agent信息,特别注意的一点就是有些野蜘蛛 User-Agent信息为空,这样就需要在程序中做是否为空的判断,防止robots.txt 文件也对它的限制无效,导致不断的爬去你的网站。 可以像下面这样(PHP实例,其他同理),判断到访问者的User-Agent为空,则返回404:

<?php
$flag = false;
$ua = $SERVER['HTTP_USER_AGENT'];
if($ua == ''){
$flag = true;
}
if($flag){
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
echo '您的请求未通过我们的验证!';
exit();
}
?>

主要搜索引擎官方给出的一些user agent信息: [infobg class=“warning” closebtn="" color="" bgcolor=""] 百度:http://www.baidu.com/search/spider.htm google:https://support.google.com/webmasters/answer/1061943 360:http://www.so.com/help/help\_3\_2.html sogou:http://www.sogou.com/docs/help/webmasters.htm\#07 soso:http://help.soso.com/webspider.htm(这条可以无视,原因你懂得) [/infobg] 原理、标记信息等说的差不多了,剩下的靠自己啦,不管你要拿去做什么,不要让我知道哦,我什么都不知道= =

参考地址

Js判断客户端是否为PC还是手持设备

利用JS userAgent判断识别浏览器代码

HTTP请求中的User-Agent 判断浏览器类型的各种方法 网络爬虫的请求标示

本文采用 CC BY-NC-SA 4.0 许可,转载请注明出处与作者。

支持一下

如果这篇文章对你有帮助,欢迎打赏或分享。

打赏支持

评论