下面给你 最全、最实用的 Navigator.userAgent 获取浏览器信息指南,含示例与 UA 识别技巧。
🌐 Navigator.userAgent:获取设备浏览器信息
在浏览器中可以通过 navigator.userAgent 读取当前设备的浏览器 UA(User-Agent)字符串。
这是前端最常用的环境识别方式之一。
⭐ 一、最基本用法
console.log(navigator.userAgent);
输出一般是类似这样的字符串:
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/120.0.0.0 Safari/537.36
它包含:
- 系统类型(Windows / Mac / Linux / Android / iOS)
- 浏览器引擎(WebKit / Gecko)
- 浏览器类型(Chrome / Safari / Firefox / Edge)
- CPU 架构(x64 / ARM)
- 版本号
⭐ 二、使用 UA 判断系统类型示例
✔ 判断是否是移动端
const isMobile = /Android|iPhone|iPad|iPod/i.test(navigator.userAgent);
✔ 判断是否是 Android
const isAndroid = /Android/i.test(navigator.userAgent);
✔ 判断是否是 iOS
const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
✔ 判断是否是 Windows
const isWindows = /Windows NT/i.test(navigator.userAgent);
⭐ 三、判断浏览器类型
✔ Chrome
const isChrome = /Chrome\/\d+/.test(navigator.userAgent) && !/Edg/.test(navigator.userAgent);
✔ Edge(新内核)
const isEdge = /Edg\/\d+/.test(navigator.userAgent);
✔ Firefox
const isFirefox = /Firefox\/\d+/.test(navigator.userAgent);
✔ Safari(iOS 或 macOS)
Safari 没有 “Chrome” 或 “Edge” 标记:
const isSafari = /Safari/.test(navigator.userAgent) && !/Chrome|Edg|OPR/.test(navigator.userAgent);
⭐ 四、UA 实际示例(常用设备)
📱 iPhone 14 Safari
Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X)
AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1
📱 Android Chrome
Mozilla/5.0 (Linux; Android 13; Pixel 6)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
💻 Windows 10 + Chrome
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
💻 macOS Chrome
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
👉 你现在的 UA 正是这一类:macOS 10.15.7 + Chrome
⭐ 五、注意:userAgent 已逐步被废弃(但仍可用)
Chrome / Safari / Firefox 都在逐步减少 UA 的详细度,为了隐私安全。
替代方案:Navigator User-Agent Client Hints(UA-CH)。
获取方式:
navigator.userAgentData.getHighEntropyValues([
"platform", "platformVersion", "uaFullVersion", "architecture", "model"
]).then(console.log);
但 兼容性不如 userAgent,很多旧设备和旧浏览器不支持。
发表回复