用indexOf判断设备

时间:2023-02-01 04:47:35
通过userAgent去判断,先判断是否为移动端,可以判断是iOS终端和Android终端,也可以具体到应用进行判断微信,微博,qq访问。
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>用indexof判断设备</title>
</head>
<body>
<a href="javascript:;" id="J_checkplatformbtn">用indexOf判断设备</a><script>
    window.onload=function(){
        var browser = {
           versions: function() {
                var u = navigator.userAgent,
                    ua = navigator.userAgent.toLowerCase();
                    return {
                        //内核,比如ie,firefox,chrome,opera,苹果
                        trident: u.indexOf('Trident') > -1, //IE内核
                        gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
                        webkit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
                        presto: u.indexOf('Presto') > -1, //opera内核
                        //终端,操作系统,比如PC端,os,移动端,ios,android
                        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,ipad
                        iphone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
                        ipad: u.indexOf('iPad') > -1, //是否iPad
                        //应用程序,比如Safari浏览器,UC浏览器,微信,微博,QQ
                        webapp: u.indexOf('Safari') == -1, //是否web应用程序,没有头部与底部
                        wechat: ua.match(/MicroMessenger/i) == "micromessenger", //微信
                        weibo: ua.match(/WeiBo/i) == "weibo", //微博
                        qq: ua.match(/QQ/i) == "qq" //qq
                    };
           }(),
           language: (navigator.browserLanguage || navigator.language).toLowerCase() //检测浏览器语言
        };
        //检查设备, mainFun
        function checkDevice(){
            if (browser.versions.mobile) {
                //在移动端浏览器打开
                if (browser.versions.ios) {
                    //在IOS浏览器打开
                    alert('ios操作系统'+ navigator.userAgent);
                }if (browser.versions.android) {
                    //在安卓浏览器打开
                    alert('android操作系统'+ navigator.userAgent);
                }if (browser.versions.iphone) {
                    //在iphone中打开
                     alert('iphone设备'+ navigator.userAgent);
                }if (browser.versions.ipad) {
                    //在ipad中打开
                    alert('ipad设备'+ navigator.userAgent);
                }if (browser.versions.webapp) {
                    //在webapp中打开
                    alert('webapp应用程序'+ navigator.userAgent);
                }if (browser.versions.wechat) {
                    //在微信中打开
                    alert('wechat应用程序'+ navigator.userAgent);
                }if (browser.versions.weibo) {
                    //在新浪微博客户端打开
                    alert('weibo应用程序'+ navigator.userAgent);
                }if (browser.versions.qq) {
                    //在QQ空间打开
                    alert('qq应用程序'+ navigator.userAgent);
                }
            }
            else {
                //在PC端浏览器打开
                if (browser.versions.trident) {
                   //在IE浏览器打开
                   alert('在IE浏览器打开'+ navigator.userAgent);
                }if (browser.versions.gecko) {
                   //在火狐浏览器打开
                   alert('在火狐浏览器打开'+ navigator.userAgent);
                }if (browser.versions.webkit) {
                   //在苹果、谷歌浏览器打开
                   alert('在苹果、谷歌浏览器打开'+ navigator.userAgent);
                }if (browser.versions.presto) {
                   //在opera浏览器打开
                   alert('在opera浏览器打开'+ navigator.userAgent);
                }
            }
        };
        function addEvent(obj,type,handle){
            try{  // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本
                obj.addEventListener(type,handle,false);
            }catch(e){
                try{  // IE8.0及其以下版本
                    obj.attachEvent('on' + type,handle);
                }catch(e){  // 早期浏览器
                    obj['on' + type] = handle;
                }
            }
        }
        //这里使用 try{ ... } catch(e){ ... } 代替 if ... else... 语句,避免浏览器出现错误提示。
        var triggerbtn=document.getElementById('J_checkplatformbtn');
        addEvent(triggerbtn,'click',checkDevice);
    }
</script>
</body>
</html>