本文介绍如何使用JavaScript检测移动设备类型,包括Android、iPhone、iPad及其他移动终端。通过正则表达式匹配User-Agent,实现动态加载特定CSS样式文件或自动跳转至对应的手机、平板及通用移动端页面,确保不同设备获得最佳浏览体验。
移动端设备检测与CSS动态加载方案
本文主要讲解如何利用JavaScript判断不同的Web访问环境,重点针对移动设备提供相应的解析方案。判断设备的代码参考自腾讯网的实现方式,可直接复制使用。
以下是加载样式的具体代码示例:
// 判断是否为移动端运行环境
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)){
// 判断访问环境是 Android|webOS|iPhone|iPod|BlackBerry 则加载以下样式
setActiveStyleSheet("style_mobile_a.css");
}
} else if(/iPad/i.test(navigator.userAgent)){
// 判断访问环境是 iPad 则加载以下样式
setActiveStyleSheet("style_mobile_iPad.css");
}
} else{
// 判断访问环境是 其他移动设备 则加载以下样式
setActiveStyleSheet("style_mobile_other.css");
}
}
}catch(e){}
}
}
} else{
// 如果以上都不是,则加载以下样式
setActiveStyleSheet("style_mobile_no.css");
}
// 判断完毕后加载样式
function setActiveStyleSheet(filename){document.write("<link href="+filename+" rel=stylesheet>");} 基于User-Agent的页面跳转实现
接下来是页面跳转的实现代码:
代码如下:
<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)){
window.location.href="平板页面";
} else{
window.location.href="其他移动端页面"
}
}catch(e){}
}
}
</script>