Web笔记··By/蜜汁炒酸奶

通过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;
}
1
2
3
4
5
6
7
8
9
10
11
12

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";
  }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

3.基本版

js的

alert(navigator.userAgent.toLowerCase());
1

方式获取浏览器的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();
   }
?>
1
2
3
4
5
6
7
8
9
10
11
12
13

主要搜索引擎官方给出的一些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 判断浏览器类型的各种方法 网络爬虫的请求标示

预览
Loading comments...
0 条评论

暂无数据

example
预览