通过JS语句判断WEB网站的访问端是电脑(web)还是手机(mobile)


内容为转载,只有一段测试过可用,其它没有验证


1 平台、设备和操作系统

<script type="text/javascript">


<!--


        //平台、设备和操作系统


        var system = {


            win: false,


            mac: false,


            xll: false,


            ipad: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);


        system.ipad = (navigator.userAgent.match(/iPad/i) != null)?true:false;


        //跳转语句,如果是手机访问就自动跳转到wap.XXX.com页面


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


 


        } else {


            window.location.href = "http://www.jdpatro.com/3g/";


        }


-->


</script>



2 XX网的适配代码

<script type="text/javascript"> 


if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){


    if(window.location.href.indexOf("?mobile")<0){


        try{


            if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){


                window.location.href="http://shipei.XXX.com/index.htm";


            }else if(/iPad/i.test(navigator.userAgent)){


            }else{


                window.location.href="http://shipei.XXX.com/simple/s/index/"


            }


        }catch(e){}


    }


}


</script>


此段代码在ie10下测试没成功,原因未知???


3 判断android,iphone,pc

<script type="text/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.*/)


                    || !!u.match(/AppleWebKit/), //是否为移动终端                                 


            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 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器                    


            iPad: u.indexOf('iPad') > -1, //是否iPad       


            webApp : u.indexOf('Safari') == -1,//是否web应该程序,没有头部与底部


            google:u.indexOf('Chrome')>-1


        };


    }(),


    language : (navigator.browserLanguage || navigator.language).toLowerCase()


    }


    document.writeln("语言版本: "+browser.language);


    document.writeln(" 是否为移动终端: "+browser.versions.mobile);


</script>


此代码测试可用,改造后如下


<script type="text/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, //apple gogole                                 


            gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //firefox                                


            mobile : !!u.match(/AppleWebKit.*Mobile.*/)


                    || !!u.match(/AppleWebKit/), //is mobile                                 


            ios : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios                 


            android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android or uc                               


            iPhone : u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //iPhone or QQHD                    


            iPad: u.indexOf('iPad') > -1, //iPad       


            webApp : u.indexOf('Safari') == -1,//web


            google:u.indexOf('Chrome')>-1


        };


    }(),


    language : (navigator.browserLanguage || navigator.language).toLowerCase()


    }


    //document.writeln("language: "+browser.language);


    //document.writeln(" is mobile: "+browser.versions.mobile);


if(browser.versions.mobile)


{


if(browser.versions.ios)


{


window.location.href="http://webapi.XXX.com/iphone.html";


}


if(browser.versions.android)


{


window.location.href="http://webapi.XXX.com/android.html";


}


if(browser.versions.iPad)


{


window.location.href="http://webapi.XXX.com/iphone.html";


}


else


{


//not do something


}


}


else


{


//not do something


}


</script>


4 如何判断访问网站的机器类型-如何判断ipad



如何判断是否是 iPad 浏览器呢,关键是看它的 User Agent 中是否有 iPad。iPad 使用的是 Safari Mobile 浏览器,他的的 User Agent 是:



Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10



function is_iPad(){        


 var ua = navigator.userAgent.toLowerCase();


 if(ua.match(/iPad/i)=="ipad") {                


 return true;


 } else {


 return false;


}


}



$is_iPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');



RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$


RewriteRule ^(.*)$ http://ipad.fairyfish.net [R=301]




5 JS 判断浏览器客户端类型(ipad,iphone,android)

<script type="text/javascript"> 


   var bForcepc


= fGetQuery("dv") == "pc";  


   function


fBrowserRedirect(){  


       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){  


           var sUrl =


location.href;     


           if(!bForcepc){  


               window.location.href = "http://ipad.mail.XXX.com/"; 


           }  


       }  


       if(bIsIphoneOs || bIsAndroid){  


           var sUrl =


location.href;     


           if(!bForcepc){  


               window.location.href = "http://smart.mail.XXX.com/"; 


           }  


       }  


       if(bIsMidp||bIsUc7||bIsUc||bIsCE||bIsWM){  


           var sUrl =


location.href;     


           if(!bForcepc){  


               window.location.href = "http://m.mail.XXX.com/"; 


           }  


       }  


   } 


   function


fGetQuery(name){//获取参数值  


       var sUrl = window.location.search.substr(1); 


       var r = sUrl.match(new RegExp("(^|&)" + name +


"=([^&]*)(&|$)")); 


       return (r == null ? null : (r[2])); 


   } 


   function


fShowVerBlock(){    


       if(bForcepc){  


           document.getElementByIdx_x("dv_block").style.display = "block"; 


       }  


       else{  


           document.getElementByIdx_x("ad_block").style.display = "block"; 


       }  


   } 


   fBrowserRedirect();  


   </script>