程序员必备小知识:js区分客户端类型

140 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

1. 区分ios/android

通过浏览器的userAgent,用正则来判断手机是ios或android客户端

<script type="text/javascript"> 
    var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 
    var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 
    alert('是否是Android:'+isAndroid); 
    alert('是否是iOS:'+isiOS); 
</script>

2. 检查移动端(mobile)、ipad、iphone、微信、qq等

第一种,来自【分享】JS判断浏览器语言及终端类型(android/ios) - 成长脚印-专注于互联网发展

<script type="text/javascript"> 
    //判断访问终端 
    var browser={ versions:function(){ 
        var u = navigator.userAgent, app = navigator.appVersion; 
        return { 
            trident: u.indexOf('Trident') > -1, //IE内核 
            webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 
            mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 
            android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端 
            iPad: u.indexOf('iPad') > -1, //是否iPad 
            weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增) 
            }; 
        }(), 
        language:(navigator.browserLanguage || navigator.language).toLowerCase() 
    } 
</script>

使用方法:

//判断是否IE内核 
if(browser.versions.trident){ alert("is IE"); } 
//判断是否webKit内核 
if(browser.versions.webKit){ alert("is webKit"); } 
//判断是否移动端 
if(browser.versions.mobile||browser.versions.android||browser.versions.ios){ alert("移动端"); }

检测浏览器语言

currentLang = navigator.language; //判断除IE外其他浏览器使用语言 
if(!currentLang){//判断IE浏览器使用语言 
    currentLang = navigator.browserLanguage; 
} 
alert(currentLang);

第二种:来自www.fufuok.com/JS-iphone-a…

if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { 
    //alert(navigator.userAgent); 
    window.location.href ="iPhone.html"; 
} else if (/(Android)/i.test(navigator.userAgent)) { 
    //alert(navigator.userAgent); 
} else { 
    window.location.href ="pc.html"; 
};