NavigatorID.userAgent

NavigatorID.userAgent 只读属性返回当前浏览器的 user agent 字符串。

这一规范要求浏览器通过这一属性提供尽可能少的信息。不要假定同一浏览器的这一属性值会在未来的版本中保持不变。尽量不要使用这一属性,或者仅仅在现有和更早的版本中使用。较新的浏览器可能开始使用相同或近似的 UA,对于早期的浏览器而言:你不能确保该浏览器是其 NavigatorID.userAgent 属性所宣称的浏览器。

另外要记住,用户可以修改浏览器的此属性(UA 欺骗).

基于 user agent 字符串来识别浏览器是不可靠的,不推荐使用,因为 user agent 字符串是用户可配置的。例如:

  • 在 Firefox 浏览器中,你可以通过 about:config 页面的 general.useragent.override 字段修改 user agent。某些 FireFox 插件会更改此字段。 但这个字段只会影响到 http 请求的 header,不影响通过 Javascript 代码检测浏览器。
  • Opera 6+ 允许用户通过菜单设置浏览器辨识字符。
  • Microsoft Internet Explorer 通过修改 Windows 注册表修改 UA 。
  • Safari 和iCab 允许用户通过菜单选项将 UA 值修改为预设的Internet Explorer 或Netscape 浏览器 UA 。

语法

var ua = navigator.userAgent;

DOMString 规定了浏览器提供给 HTTP headers 和其响应,以及其他与Navigator 相关的方法的完整用户代理属性 。

用户代理属性由几个信息段组成一个整齐的结构,每个信息段都取值于其他 Navigator 属性,这些属性也可以是用户设置的。基于 Gecko 内核的浏览器的 UA 遵守下列通用结构规范。

userAgent = appCodeName/appVersion number (Platform; Security; OS-or-CPU;
Localization; rv: revision-version-number) product/productSub
Application-Name Application-Name-version

例子

alert(window.navigator.userAgent)
// alerts "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape6/6.1"

规范

Specification Status Comment
HTML Living Standard
NavigatorID.userAgent
Living Standard Initial definition

浏览器兼容性

BCD tables only load in the browser

更多