JavaScript判断移动终端类型与浏览器版本的实现方法
本文详解如何利用JavaScript检测移动终端类型(iOS、Android)及浏览器版本。通过解析navigator.userAgent属性,结合正则表达式匹配WebKit、Mobile等关键字,实现设备识别。文中提供了处理UC浏览器、QQ浏览器HD版等特殊UA的兼容方案,并给出判断设备语言及跳转对应页面的完整代码示例,帮助开发者解决前端兼容性问题。
判断原理
JavaScript作为前端开发的核心语言,能够用于识别浏览器类型及其版本。通常有两种方式:一是利用各浏览器特有的属性进行区分,二是分析浏览器的userAgent字符串。在大多数情况下,仅识别浏览器类型不足以解决兼容性问题,必须进一步获取浏览器版本信息,而这通常也依赖于对userAgent的分析。
浏览器类型
识别方法主要包含两类:一是利用浏览器特有的属性差异;二是基于userAgent字符串进行解析。对于浏览器版本的判断,同样主要依赖对userAgent的分析。
对于手机浏览器判断
1.如何判断是否为移动终端 利用正则match, 匹配navigator.userAgent是否含有字符串AppleWebKit*****Mobile 安卓qq浏览器HD版 只有AppleWebKit 2手机语言版本的判断 使用navigator.browserLanguage 便可得出windows phone语言版本, 当然可恶的小小手机语言版本也有兼容性的差异,兼容Mozilla,以及AppleWebKit内核的浏览器访问其语言版本,它会列出 navigator.language
<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.*/), //是否为移动终端
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 , //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
document.writeln("语言版本: "+browser.language);
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>
比较特别的地方
UC浏览器在安卓环境下不返回标准报头,仅返回“linux”,因此可粗略依据“linux”判断为安卓设备(前提是已确认为移动终端)。另外,安卓QQ浏览器HD版的检测结果可能显示为mac和Safari。
检测浏览器语言:
currentLang = navigator.language; //判断除IE外其他浏览器使用语言
if(!currentLang){//判断IE浏览器使用语言
currentLang = navigator.browserLanguage;
}
alert(currentLang);
js 判断iPhone|iPad|iPod|iOS|Android客户端
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);
window.location.href ="Android.html";
} else {
window.location.href ="pc.html";
};
上述代码经过调整,可直接使用。如遇到问题,欢迎反馈指正。
JavaScript零基础入门:从环境搭建到运行第一段代码
2026-11-05 15:29:58
HTML链接中javascript:void(0)的作用及现代替代方案
2026-11-05 10:07:47
在线调试 JS 时怎么引入 jQuery 或 Vue 等第三方库
2026-11-05 08:53:56
原生JavaScript实现简易颜色选择器原理与代码
2026-11-03 23:22:19
JS原生表单序列化:FormData与URLSearchParams用法详解
2026-11-03 23:13:21
