您的位置:首页 > Web前端 > JavaScript

js实现pc和手机的判断

2014-07-30 11:39 232 查看
如果你不太会自适应,不能把pc端和手机端的网页都用同一个html页面,那就就必须写两个站(PC用www域名,手机用wap二级域名),一个PC,一个手机,那么如何做到识别用户是PC客服端还是手机客户端登陆的你网站的呢(并且能够实现在手机端输入www域名的时候不加载PC端的网页直接跳转到手机端的网页),这就需要js来对客户端的系统进行判断

 我这里有三段代码,都可以实现这个效果用法一样,优劣如何,就看你的需求如何

 不过,这里也有2个疑问点,请先看代码,我后面再解答

1.

 <script type=“text/javascript”>

function IsPC() {

    var userAgentInfo = navigator.userAgent;

    var Agents = ["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;

}
 </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=B页面;

    }

}

browserRedirect();
 </script>

3

 <script type=“text/javascript”>

   var system ={

   win : false,

   mac : false,

   xll : false

   };

 

//检测平台

   var p = navigator.platform;

   system.win = p.indexOf("Win") == 0;

   system.mac = p.indexOf("Mac") == 0;

   system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);

   //跳转语句

   if(system.win||system.mac||system.xll){

   window.location.href="http://www.weishengyule.cn";

   }else{

   window.location.href="http://wap.weishengyule.cn";

   }

 </script>

疑问:js脚本都是在HTML页面加载完毕后才运行的,我这样做会不会出现在手机端输入PC端网页的域名会先完全加载完毕网页才跳转到手机端的网页

情景一:会出现完全加载后才跳转到手机端网页

原因:1.你没有把代码放在head的第一行    2.你用外部文件加载进来的

情景二:不会出现以上的情况,直接进入手机端网页

方法:直接用<script type="text/javascript">代码</script> 这样的方式,就不会出现问题

疑问二:谁优谁劣

个人喜欢第三个

原因:用变量的方式来给函数命名,理论上会直接加载他来运行【依据,我师傅说的】,个人感觉三个的效果都没差别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: