JS 判断访问终端是电脑还是移动设备/手机

来源:互联网 发布:mac air怎么清理内存 编辑:程序博客网 时间:2024/06/09 13:43

公司需求:断送访问设备是手机还是电脑,以便做不同的返回页面,因为对HTTP协议不了解,只能上网上找相关的资料,后来找到了下面这一段代码,比较符合的我的需求,分享给有须要的人,同时也用以备忘;


<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应该程序,没有头部与底部
};
}()
}

document.writeln(" 是否为移动终端: "+browser.versions.mobile);//这个有问题,可以忽略
document.writeln(" ios终端: "+browser.versions.ios); //功能正常,准确度不错
document.writeln(" android终端: "+browser.versions.android); //功能正常,准确度不错;因公司需求只要用到这两个就行了,所以下面的我就没看。有兴趣的可以测试下
document.writeln(" 是否为iPhone: "+browser.versions.iPhone);
document.writeln(" 是否iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent);
</script>


0 0