前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过Js判断客户端为PC端还是手持设备

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

作者头像
WindCoder
发布2018-09-20 14:54:34
7.6K0
发布2018-09-20 14:54:34
举报
文章被收录于专栏:WindCoderWindCoder

原理

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

代码实例

1.简化版

代码语言:javascript
复制
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.详细版

代码语言:javascript
复制
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的

代码语言:javascript
复制
alert(navigator.userAgent.toLowerCase());

方式获取浏览器的userAgent信息

扩展

网络爬虫的爬取问题

爬虫请求头中的User-Agent也包含了特殊的标记信息,我们获取到该信息判断是否爬虫,然后返回最佳的SEO页面就可以了。

网络爬虫在发送http请求获取网页数据时也会在头部附加 User-Agent信息,特别注意的一点就是有些野蜘蛛 User-Agent信息为空,这样就需要在程序中做是否为空的判断,防止robots.txt 文件也对它的限制无效,导致不断的爬去你的网站。

可以像下面这样(PHP实例,其他同理),判断到访问者的User-Agent为空,则返回404:

代码语言:javascript
复制
<?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信息:

百度: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(这条可以无视,原因你懂得)

原理、标记信息等说的差不多了,剩下的靠自己啦,不管你要拿去做什么,不要让我知道哦,我什么都不知道= =

参考地址

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原理
  • 代码实例
    • 1.简化版
      • 2.详细版
        • 3.基本版
        • 扩展
          • 网络爬虫的爬取问题
          • 参考地址
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档