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.15Safari 浏览器
Version/26.1Safari 版本号

三、常见用途

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 支持较好

五、常见注意事项

  1. User-Agent 很容易伪造(通过浏览器设置或 DevTools)。
  2. 不要使用 UA 做安全验证(只能用于兼容性判断)。
  3. 不要根据 UA 做严格设备判断,使用 “feature detection” 更可靠。
  4. 移动端 UA 由于厂商碎片化,可靠性更低。

如果你需要,我可以提供:

  • 根据 UA 自动判断浏览器/系统的完整代码
  • 用户代理解析函数(专业版)
  • UA 信息爬虫识别方案
  • 手机/平板/桌面设备精准识别算法

告诉我你的需求即可。