zoukankan      html  css  js  c++  java
  • js判断手机访问跳转到手机站

    1. 第一种方法:

      <script>

          if(navigator.platform.indexOf('Win32')!=-1){ 

          //pc

              //window.location.href="电脑网址";

           }else{ 

         //shouji

              window.location.href="手机网址";

            } 

      </script>

    2. 第二种方法:

      <script type="text/javascript">

      function browserRedirect() { 

      var sUserAgent= navigator.userAgent.toLowerCase(); 

      var bIsIpad= sUserAgent.match(/ipad/i) == "ipad"; 

      var bIsIphoneOs= sUserAgent.match(/iphone os/i) == "iphone os"; 

      var bIsMidp= sUserAgent.match(/midp/i) == "midp"; 

      var bIsUc7= sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4"; 

      var bIsUc= sUserAgent.match(/ucweb/i) == "ucweb"; 

      var bIsAndroid= sUserAgent.match(/android/i) == "android"; 

      var bIsCE= sUserAgent.match(/windows ce/i) == "windows ce"; 

      var bIsWM= sUserAgent.match(/windows mobile/i) == "windows mobile"; 

      if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) { 

      window.location.href= '手机网站地址'; 

      } else { 

      window.location= '电脑网站地址'; 

      browserRedirect(); 

      </script>

    3. 第三种方法:

      <script type="text/javascript">

      var mobileAgent = new Array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");

      var browser = navigator.userAgent.toLowerCase(); 

      var isMobile = false; 

      for (var i=0; i<mobileAgent.length; i++){ if (browser.indexOf(mobileAgent[i])!=-1){ isMobile = true; 

      //alert(mobileAgent[i]); 

      location.href = '手机网址';

      break; } } 

      </script>

    4. 第四种方法:

      <?php

      ////这段放手机站里

      header("Cache-Control: no-cache"); 

      header("Pragma: no-cache");

      $ua = strtolower($_SERVER['HTTP_USER_AGENT']);

      $uachar = "/(symbianos|android|Mac OS|ucweb|blackberry)/i";

      if($ua != '' && !preg_match($uachar, $ua)){

      echo 'window.location.href="电脑地址";';

      exit();

      }

      ?>

      <?php

      //这段放在网站里

      header("Cache-Control: no-cache"); 

      header("Pragma: no-cache");

      $ua = strtolower($_SERVER['HTTP_USER_AGENT']);

      $uachar = "/(symbianos|android|Mac OS|ucweb|blackberry)/i";

      if($ua != '' && preg_match($uachar, $ua)){

      echo 'window.location.href="手机地址";';

      exit();

      }

      ?>

    5. 第五种方法:

      <?php

      function UserAgent(){

          $user_agent = ( !isset($_SERVER['HTTP_USER_AGENT'])) ? FALSE : $_SERVER['HTTP_USER_AGENT'];

          return $user_agent;

      }

      //Mobile

      if ((preg_match("/(iphone|ipod|android)/i", strtolower(UserAgent()))) AND strstr(strtolower(UserAgent()), 'webkit')){

          header('Location: 手机网址');

          exit;

      }else if(trim(UserAgent()) == '' OR preg_match("/(nokia|sony|ericsson|mot|htc|samsung|sgh|lg|philips|lenovo|ucweb|opera mobi|windows mobile|blackberry)/i", strtolower(UserAgent()))){

          header('Location: 手机网址');

          exit;

      }else{//PC

          header("Location: 电脑网址");

      }

      ?>

    6. 第六种方法,也可以把名为uaredirect的文件下载到自己网站上引入;

       (说明:把uaredirect放在百度中搜下就出现文件具体地址了)

    文章来自:http://jingyan.baidu.com/article/cdddd41c61823e53cb00e198.html

    javascript是前端开发地主要语言,我们可以通过编写javascript程序来判断浏览器地类型及版本.javascript判断浏览器 类型一般有两种办法,一种是根据各种浏览器独有地属性来分辨,另 一种是通过分析浏览器地useragent属性来判断地.本文对浏览器各自地useragent特点做一分析,并给出判断方法:

    windows操作系统浏览器系列:

    ie浏览器系列:
    特征表现:均以 mozilla/ 开头,msie x.0; 中地x表示其版本;
    判断方法:粗略判断可以只检索 msie x.0; 字符串即可,严格判断可检索 mozilla/x.0 (compatibal; msie x.0; windows nt,不过一般没有这个必要
    windows版firefox:
    特征表现:以mozilla/x.0开头,包含windows nt,gecko/和firefox/ ;
    判断方法:粗略判断可以只检索 firefox/和windows nt 字符串,严格判断可以检索mozilla/ ,windows nt,gecko/和firefox/ 四个字符串;
    windows版chrome:
    特征表现: 以mozilla/x.0开头,包含windows nt,chrome/,同时包含applewebkit/,safari/;
    判断方法:粗略判断可以只检索 windows nt和chrome/字符串,严格判断可以同时检索 mozilla/ ,windows nt,applewebkit/,safari/,chrome/ 五个字符串;
    windows版opera:
    特征表现:以opera/开头,含有windows nt,presto/ 字符串;
    判断方法:粗略判断只检索 windows nt和opera/字符串,严格判断同时检索 opera/,windows nt 和 presto/;
    windows版safari:
    特征表现:以mozilla/开头,同时含有windows nt,applewebkit/,safari/;
    判断方法:粗略判断可以检索含有 windows nt,safari/ 同时不包含 chrome/,严格判断需要同时含有mozilla/,windows nt,applewebkit/,safari/但是不包含chrome/;
    小结:windows操作系统上地浏览器useragent均包含windows nt字符串来表征windows操作系统.

    iphone平台浏览器系列:

    iphone自带safari:
    特征表现:以mozilla/开头,含有iphone字符串,同时含有 mobile/,safari/字符串;
    判断方法:粗略判断只检索 iphone和safari/字符串,严格判断则要同时包含 mozilla/,iphone,mobile/,safari/四个字符串
    iphone版opera mobile:
    特征表现: 以opera/开头,含有iphone字符串,同时含有 opera mini/,presto/字符串;
    判断方法:粗略判断只检索 iphone和opera/字符串,严格判断则要同时包含 opera/,iphone,opera mini/,presto/四个字符串
    小结:iphone手机上地浏览器useragent均包含iphone字符串

    android平台浏览器系列:

    android自带浏览器(有人说其实是就chrome,但google自己未做表示,且还在开发一个android上运行地chrome to phone):
    特征表现: 以mozilla/开头,含有android和linux 字符串,同时含有 applewebkit/,mobile safari/字符串;
    判断方法:因为还不知道android上未来会不会有独立地safari(估计不会了),所以建议直接严格判断,检索 mozilla/,android,linux,applewebkit/,mobile safari/五个字符串
    android版opera mobile:
    特征表现: 以opera/开头,含有android和linux 字符串,同时含有 opera mobi/,presto/字符串;
    判断方法:粗略判断只检索 android和opera/,严格判断则要同时包含opera/,android,linux,opera mobi/,presto/五个字符串
    android版firefox:
    特征表现:以mozilla/开头,含有android和linux 字符串,同时含有 firefox/,gecko/,fennec/字符串;
    判断方法:粗略判断只检索 android和firefox/,严格判断则要同时包含mozilla/,android,linux,firefox/,gecko/,fennec/六个字符串
    小结:android平台上地浏览器useragent均包含android和linux字符串

    以上对windows、iphone、android三大平台地主流浏览器解析就基本结束了,其他平台地linux估计至少与android平台应该类 似,而采用了mac os地ipad和麦金塔应该与iphone平台类似,故而暂时先不做解析,也因为手头没有那么多设备和操作系统来测试,希望日后能够补上.

    现在地网站产品开发要求跟以前又不一样了,因为不仅要满足电脑浏览,还需要满足用户通过智能手机(这里仅指iphone、android、windows phone等真正地智能手机,blackberry和palm这样地小众半智能系统暂时不考虑,至于symbian这个伪智能系统就一边玩去吧)通过以上 三个具有代表性地平台,也大致可以推测出根据浏览器useragent判断用户设备地解决方案了.

    1、如果需要判断操作系统,方法比较简单,在useragent里面检索以下字符串:

    含有windows nt:显而易见了,windows操作系统,nt后面地版本号可以判断os版本;
    含有mac:苹果地mac os x或者其他mac os内核地系统;
    含有iphone:苹果iphone手机专有地,一般情况下也应该含有mac;
    含有ipad:苹果ipad平板电脑(资料表明ipad地浏览器useragent同时含有mac,iphone,ipad);
    含有linux:linux操作系统或者其他以linux作为内核地操作系统;
    含有android:谷歌地android操作系统,有可能是智能手机,也有可能是安卓版地平板电脑哦,一般情况下android平台上地useragent也应该包含linux;
    含有unix,sunos,bsd三者之一:unix系统,其实对这个系统地用户体验问题,目前几乎可以不用考虑了;
    含有ubuntu:ubuntu定制版地linux
    ……

    你也看到了,判断操作系统及其版本其实并不一直有用,但总有能用到地地方,比如开发专门针对iphone、ipad、android等设备屏幕分辨率地页面

    2、判断浏览器地内核,方法也不困难,我自己琢磨出来地,不一定都对啊:

    ie(trident)内核(ie for mac, ies4linux之类地就不用说了,只考虑windows下地):以mozilla/开头,含有windows nt和msie字符串;
    firefox(gecko)内核:以mozilla/开头,含有firefox/和gecko/字符串地就是啦,其中android版地还带有fennec/字符串;
    opera()内核:以opera/开头,含有presto/字符串,其中iphone版还带有opera mini/,android版也带有opera mobi/;
    webkit内核:以mozilla/开头,含有applewebkit/和safari/字符串,其中带有chrome/地就是chrome浏览器,不带地就是safari或其他;
    以上就是主要地浏览器内核了

    浏览器内核才是解决兼容性地关键问题所在,然而,这个兼容性问题已经有jquery和extjs等框架帮你解决了,因此这个判断只针对个别页面地css样 式在不同内核渲染效果不同地情况下使用,当然了,同样地内核在智能手机和电脑等不同设备上渲染结果也不同,这一点也需要注意.

    3、判断浏览器useagent地实际应用举例:

    不同浏览器内核对页面地渲染效果不同,虽然已经有jquery和extjs等为我们做了兼容处理,但是依然会有一些细小地差别需要我们单独处理,此时需要判断浏览器内核;
    用户并不仅仅是通过电脑访问网站地,随着智能手机地日益普及还有平板电脑地大行其道,使用这两者来上网地比例越来越高,怎么办?平板电脑还好,屏幕大分辨 率高,智能手机受限于他地屏幕尺寸和分辨率,虽有强劲地处理能力,也可以完美支持现有地网站,但是为客户多考虑一点总没有坏处你说对吧?毕竟通过局部缩放 拖拽地方式看网页很不舒服,这时呢,我们就可以专门为iphone、android这样地窄条屏幕提供一个专用版本来布局了,一来提升浏览体验,二来降低 网络流量,加快访问速度;
    做访客流量分析,通过判断客户浏览器类型并记录其数量,来优化设计自己地网站,以分别提升其客户体验

    代码如下:

    <script type=text/javascript>
    var sys = {};
    var ua = navigator.useragent.tolowercase();
    var s;
    (s = ua.match(/msie ([d.]+)/)) ? sys.ie = s[1] :
    (s = ua.match(/firefox/([d.]+)/)) ? sys.firefox = s[1] :
    (s = ua.match(/chrome/([d.]+)/)) ? sys.chrome = s[1] :
    (s = ua.match(/opera.([d.]+)/)) ? sys.opera = s[1] :
    (s = ua.match(/version/([d.]+).*safari/)) ? sys.safari = s[1] : 0;

    //以下进行测试
    if (sys.ie) document.write('ie: ' + sys.ie);
    if (sys.firefox) document.write('firefox: ' + sys.firefox);
    if (sys.chrome) document.write('chrome: ' + sys.chrome);
    if (sys.opera) document.write('opera: ' + sys.opera);
    if (sys.safari) document.write('safari: ' + sys.safari);
    </script>
    或:
    kindeditor开源编辑器源码中地检测浏览器地方法:
    ke = {};
    ke.browser = (function () {
    var ua = navigator.useragent.tolowercase();
    return {
    version:ua.match(/(msie|firefox|webkit|opera)[/:s](d+)/) ? regexp.$2 : 0,
    ie:(ua.indexof(msie) > -1 && ua.indexof(opera) == -1),
    gecko:(ua.indexof(gecko) > -1 && ua.indexof(khtml) == -1),
    webkit:(ua.indexof(applewebkit) > -1),
    opera:(ua.indexof(opera) > -1)
    };
    })();
  • 相关阅读:
    python lambda函数的用法
    python 中is 和 ==的区别
    Mongo 聚合函数 $group方法的使用
    mongo聚合
    当mongo数据库报错关于 Failed global initialization:
    python 中字符串的拼接
    python eval()用法报错 SyntaxError: unexpected EOF while parsing
    高性能MySQL(六):选择合适的存储引擎
    高性能MySQL(五):存储引擎
    高性能MySQL(四):多版本并发控制
  • 原文地址:https://www.cnblogs.com/Better-Me/p/4497440.html
Copyright © 2011-2022 走看看