JavaScript判断移动终端类型与浏览器版本的实现方法

作者:微光

时间:2026-10-27

浏览:344

本文详解如何利用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";
};

上述代码经过调整,可直接使用。如遇到问题,欢迎反馈指正。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章