跳到主要内容

判断浏览器类型

检测用户使用的浏览器。

检测微信浏览器

function isWeixin() {
const ua = navigator.userAgent.toLowerCase();
return ua.includes('micromessenger');
}

// 使用
if (isWeixin()) {
console.log('在微信中打开');
// 微信特定处理
}

检测 iOS Safari

function isIOS() {
const ua = navigator.userAgent;
return /iPhone|iPad|iPod/i.test(ua);
}

function isSafari() {
const ua = navigator.userAgent;
return /Safari/.test(ua) && !/Chrome/.test(ua);
}

// 组合检测
function isIOSafari() {
return isIOS() && isSafari();
}

检测 Android

function isAndroid() {
const ua = navigator.userAgent.toLowerCase();
return ua.includes('android');
}

检测 Chrome

function isChrome() {
const ua = navigator.userAgent;
return /Chrome/.test(ua) && /Google Inc/.test(navigator.vendor);
}

检测 Firefox

function isFirefox() {
const ua = navigator.userAgent;
return /Firefox/.test(ua);
}

检测 Edge

function isEdge() {
const ua = navigator.userAgent;
return /Edg/.test(ua);
}

完整浏览器检测

const Browser = {
get ua() {
return navigator.userAgent;
},

isWeixin() {
return /micromessenger/i.test(this.ua);
},

isQQ() {
return /qqbrowser/i.test(this.ua);
},

isWeibo() {
return /weibo/i.test(this.ua);
},

isIOS() {
return /iphone|ipad|ipod/i.test(this.ua);
},

isAndroid() {
return /android/i.test(this.ua);
},

isMobile() {
return /mobile|android|iphone|ipad/i.test(this.ua);
},

isPC() {
return !this.isMobile();
},

isSafari() {
return /safari/i.test(this.ua) && !/chrome/i.test(this.ua);
},

isChrome() {
return /chrome/i.test(this.ua);
},

isFirefox() {
return /firefox/i.test(this.ua);
},

isEdge() {
return /edg/i.test(this.ua);
},

isIE() {
return /msie|trident/i.test(this.ua);
},

getPlatform() {
if (this.isIOS()) return 'iOS';
if (this.isAndroid()) return 'Android';
if (this.isPC()) return 'PC';
return 'Unknown';
}
};

// 使用
console.log(Browser.isWeixin());
console.log(Browser.isMobile());
console.log(Browser.getPlatform());

获取浏览器版本

function getBrowserVersion() {
const ua = navigator.userAgent;

// Chrome
const chromeMatch = ua.match(/Chrome\/(\d+)/);
if (chromeMatch) {
return { browser: 'Chrome', version: chromeMatch[1] };
}

// Firefox
const firefoxMatch = ua.match(/Firefox\/(\d+)/);
if (firefoxMatch) {
return { browser: 'Firefox', version: firefoxMatch[1] };
}

// Safari
const safariMatch = ua.match(/Version\/(\d+)/);
if (safariMatch) {
return { browser: 'Safari', version: safariMatch[1] };
}

// IE
const ieMatch = ua.match(/MSIE (\d+)/) || ua.match(/Trident\/.*rv:(\d+)/);
if (ieMatch) {
return { browser: 'IE', version: ieMatch[1] };
}

return { browser: 'Unknown', version: 'Unknown' };
}

注意事项

// 1. User-Agent 可以被伪造
// 不要完全依赖 UA 做关键逻辑判断

// 2. 某些浏览器可能隐藏 UA
// 使用特性检测更可靠

// 3. 微信内置浏览器
// 基于 Chrome 或 X5 内核,检测 micromessenger

// 4. 移动端 WebView
// 可能需要检测特定 APP 的 UA