如何判断是否是 iPad 浏览器呢,大部分家用设备

作者:新美高梅

今天在做一个轮播广告的项目,轮播广告上有两个特效:第一就是鼠标经过图片变亮,再就是点击图会切换成文字描述的层且覆盖图片。通常这样的效果在PC端没什么问题的,但是到IPAD上面就会需要点击两下才能切换,所以我想了想,有没有办法让ipad上只执行点击的JS代码,而不执行滑动的代码,于是就想到了“用JS判断终端设备”来解决这个问题,下面就分享下方法:

我将使用Windows系统的设备定为PC,毕竟博客面向中国用户,大部分家用设备还是用的Windows系统

先我们来看看一段用php如何识别用户是通过 PC、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 Version/4.0.4 Mobile/7B334b Safari/531.21.10

原理是判断浏览器提交的USER AGENT

<?php
$uAgent = $_SERVER['HTTP_USER_AGENT'];
$osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|XWindow|ubuntu|Longhorn|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN";
if(preg_match("/($osPat)/i", $uAgent ))
{
    echo "来着PC访问";
}
else
{
    echo "其他终端访问";
}
 
?>

如何判断是否是 iPad 浏览器呢,关键是看它的 User Agent 中是否有 iPad。代码如下:

 代码如下

以下是腾讯的通过JS语句判断WEB网站的访问端是电脑还是手机

functionis_iPad(){

<?php
//获取USER AGENT
$agent = strtolower($_SERVER['HTTP_USER_AGENT']);

腾讯网的适配代码
如何判断访问网站的机器类型-如何判断ipad
JS 判断浏览器客户端类型(ipad,iphone,android)

varua=navigator.userAgent.toLowerCase();

//分析数据
$is_pc = (strpos($agent, 'windows nt')) ? true : false;  
$is_iphone = (strpos($agent, 'iphone')) ? true : false;  
$is_ipad = (strpos($agent, 'ipad')) ? true : false;  
$is_android = (strpos($agent, 'android')) ? true : false;  

    <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.baidu.com页面
            if (system.win || system.mac || system.xll||system.ipad) {
     
            } else {
     
                window.location.href = "";
            }
    -->
    </script>

if=="ipad"){

//输出数据
    if($is_pc){  
        echo "这是PC";  
    }  
    if($is_iphone){  
        echo "这是iPhone";  
    }  
    if($is_ipad){  
        echo "这是iPad";  
    }  
    if($is_android){  
        echo "这是Android";  
    }  
?>

腾讯网的适配代码

returntrue;

如果你只判断是否为iphone设备可以如下来进行操作

    <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="";
                }else if(/iPad/i.test(navigator.userAgent)){
                }else{
                    window.location.href=""
                }
            }catch(e){}
        }
    }
    </script>

returnfalse;

 代码如下

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

拿 我碰到的那个问题实践下,原生代码是这样的:

function get_device_type(){
 $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
 $type = 'other';
 if(strpos($agent, 'iphone') || strpos($agent, 'ipad')  ){
  $type = 'ios';
 }
 if(strpos($agent, 'android')){
  $type = 'android';
 }
 return $type;
}

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

},function.fadeIn;

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

我现在需要在PC端执行这段代码,在IPAD上不执行,于是我进行一下处理:

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

本文由美狮美高梅官方网站发布,转载请注明来源

关键词: