navigator.userAgent 是浏览器 JavaScript 环境中最常用的属性之一,用于获取 用户代理字符串(User-Agent),其内容通常包含:
- 浏览器名称与版本
- 操作系统类型与版本
- 引擎信息(WebKit、Blink、Gecko 等)
- 设备类型(电脑/手机/平板)
- 其他附加信息
下面给你一个完整、专业的说明,包含使用方式、示例、解析方法与注意事项。
一、基本用法
console.log(navigator.userAgent);
执行后会输出当前浏览器的 User-Agent 字符串。
二、典型 User-Agent 示例
以下是你当前环境(Mac Safari 16.x)的 User-Agent(来自你的会话元数据):
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15
解析如下:
| 字段 | 含义 |
|---|---|
| Mozilla/5.0 | 兼容标识,历史遗留 |
| Macintosh | 设备类型 |
| Intel Mac OS X 10_15_7 | 操作系统 |
| AppleWebKit/605.1.15 | 渲染引擎 WebKit |
| Safari/605.1.15 | Safari 浏览器 |
| Version/26.1 | Safari 版本号 |
三、常见用途
1. 判断设备类型(PC/Mobile)
if (/Mobi|Android|iPhone|iPad/i.test(navigator.userAgent)) {
console.log("Mobile device");
} else {
console.log("Desktop device");
}
2. 判断浏览器类型
if (navigator.userAgent.includes("Chrome")) {
console.log("Chrome browser");
} else if (navigator.userAgent.includes("Safari")) {
console.log("Safari browser");
}
3. OS 系统检测
if (/Windows/i.test(navigator.userAgent)) {
console.log("Windows");
}
if (/Mac OS X/i.test(navigator.userAgent)) {
console.log("macOS");
}
四、推荐替代 API(现代 Web)
因为 UA 会被滥用、容易伪造,Chrome、Safari 已经逐步减少暴露,因此推荐用:
1. navigator.userAgentData(Client Hints)
navigator.userAgentData.getHighEntropyValues([
"platform",
"platformVersion",
"architecture",
"model",
"uaFullVersion"
]).then(console.log);
但注意:
- Safari 目前还 不完全支持
- Chrome、Edge 支持较好
五、常见注意事项
- User-Agent 很容易伪造(通过浏览器设置或 DevTools)。
- 不要使用 UA 做安全验证(只能用于兼容性判断)。
- 不要根据 UA 做严格设备判断,使用 “feature detection” 更可靠。
- 移动端 UA 由于厂商碎片化,可靠性更低。
如果你需要,我可以提供:
- 根据 UA 自动判断浏览器/系统的完整代码
- 用户代理解析函数(专业版)
- UA 信息爬虫识别方案
- 手机/平板/桌面设备精准识别算法
告诉我你的需求即可。
发表回复