JavaScript 判断浏览器环境:PC、移动端与微信客户端识别方案
作者:竹影时间:2026-10-23 14:20:35浏览:369
本文整理了多种JavaScript判断浏览器环境的方法,涵盖PC端与移动端的区分、微信客户端的识别、以及iPhoneX等特殊机型检测。通过正则匹配User-Agent及平台信息,提供实用的代码示例,帮助开发者准确判断当前运行环境。
JavaScript 判断浏览器环境概述
分享一段用于识别浏览器环境的JavaScript代码,同时作为个人技术笔记保存。具体实现方式如下:
第一种方法:
方法一:基础移动端与PC端判断
// 判断浏览器函数
function isMobile(){
if(window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) {
return true; // 移动端
}else{
return false; // PC端
}
}
第二种方法:该方案源自 im.qq.com。
方法二:基于User-Agent的详细环境检测
var os = function() {
var ua = navigator.userAgent,
isWindowsPhone = /(?:Windows Phone)/.test(ua),
isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,
isAndroid = /(?:Android)/.test(ua),
isFireFox = /(?:Firefox)/.test(ua),
isChrome = /(?:Chrome|CriOS)/.test(ua),
isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)),
isPhone = /(?:iPhone)/.test(ua) && !isTablet,
isPc = !isPhone && !isAndroid && !isSymbian;
return {
isTablet: isTablet,
isPhone: isPhone,
isAndroid : isAndroid,
isPc : isPc
};
}();
// 使用方法
if(os.isAndroid || os.isPhone){
alert("-----");
}
检测是否为微信客户端:
代码片段1
微信客户端环境识别
window.isInWeixinApp = function() {
return /MicroMessenger/.test(navigator.userAgent);
};
/**
* 判断是否是微信环境
*/
function getIsWxClient () {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;
}
return false;
};
代码片段2
综合判断:微信、移动端与PC端的组合逻辑
var isWechart = function () {
var rst = true
if(window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)){
var ua = navigator.userAgent.toLowerCase();
if (!(ua.match(/MicroMessenger/i) == "micromessenger")) {
rst = false;
}
}else {
rst = false;
}
return rst;
}
区分微信浏览器在PC端与手机端的运行状态,以及手机端下是微信还是非微信环境。
微信浏览器在PC与手机端的区分
//平台、设备和操作系统
var system = {
win: false,
mac: false,
xll: false,
ipad: false
};
//检测平台
var p = navigator.platform;
system.win = p.indexOf("Win") == 0;
system.mac = p.indexOf("Mac") == 0;
system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
system.ipad = (navigator.userAgent.match(/iPad/i) != null) ? true : false;
//跳转语句,如果是手机访问就自动跳转到wap.baidu.com页面
if (system.win || system.mac || system.xll || system.ipad) {
alert("在PC端上打开的");
} else {
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
alert("在手机端微信上打开的");
} else {
alert("在手机上非微信上打开的");
}
}
判断当前JavaScript运行环境是否为App内置浏览器。
App内置环境检测
/**
*判断是否是app环境
*/
function getIsApp () {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/isapp/i) == "isapp") {
return true;
}
return false;
};
使用JavaScript检测当前环境是否处于iPhoneX机型。
iPhoneX机型环境判断
/**
*判断是否是app环境
*/
function getIsApp () {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/isapp/i) == "isapp") {
return true;
}
return false;
};
移动端页面中判断设备是否为iPhone X。
移动端iPhone X页面适配检测
function isIPhoneX(fn){
var u = navigator.userAgent;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isIOS) {
if (screen.height == 812 && screen.width == 375){
//是iphoneX
}else{
//不是iphoneX
}
}
}
以上内容为本文的全部总结,希望对读者的学习有所启发,欢迎继续支持本站。
作者最新文章
网页开发三者分工:HTML结构、CSS样式与JavaScript交互怎么协作
2026-11-05 12:51:22
JS解析URL参数时怎么处理中文乱码和特殊字符
2026-11-05 12:47:23
js-cookie 存储 JSON 对象:自动序列化与反序列化技巧
2026-11-05 12:36:26
marked.js 快速上手:安装与基础 Markdown 转 HTML 示例
2026-11-05 09:32:53
Phaser.js 与 PixiJS、Cocos Creator 的技术选型对比
2026-11-05 08:36:30
