userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值,所以userAgent 的判断是识别浏览器的关键,我们在移动互联网开发中,也经常需要通过userAgent 判断是桌面端设备还是移动设备来进行一些操作,
下面是整理的是常见代码:
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.*/), //是否为移动终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端 iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部 weixin: u.indexOf('MicroMessenger') > -1, //是否微信 qq: u.match(/\sQQ/i) == " qq" //是否QQ }; }(), language:(navigator.browserLanguage || navigator.language).toLowerCase() } ; window.addEventListener('load', function (event) { setTimeout(function () { if(browser.versions.mobile && browser.versions.android){ // }else{ // } }, 4000); });有时候在手机上打开pc站,也可以通过下面更简单的方法判断,然后跳转到我们的h5页面,如:
(function(){ // 登录页面不跳转 h5页面 if(window.location.href.search('login.html') != -1){ return; } //移动端访问pc页面跳转H5页面 var ua=navigator.userAgent, regMobileDevice=/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i, h5Url = 'http://m.qianduan8.com/'; if(ua.match(regMobileDevice)){ window.location.replace(h5Url); } })();