此文档描述了Firefox 4及以后版本的Firefox浏览器,以及基于Gecko 2.0及以后版本的应用所使用的UA字符串。对于Gecko 2.0之后产生的变化,可以参考Firefox 4中最终的UA字符串一文。
一般格式
Firefox的UA字符串可以被拆分为以下四个部分:
Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
- Mozilla/5.0 是表明了该浏览器与Mozilla相兼容的通用字符串。这个字段几乎与现如今的所有浏览器都共通,几乎是现代浏览器的标配。
- platform 描述了浏览器所运行的原生平台(例如:Windows,Mac,Linux或Android),以及其是否属于移动设备。Firefox OS电话只会简单地表示为"Mobile"; 因为其平台是web。请注意,platform可包含多个被"; "分隔的字段。更多信息和例子可以参考下面内容。
- rv:geckoversion 显示了Gecko的版本号,(如"17.0")。在近期几个版本的浏览器中,geckoversion与firefoxversion一致。
- Gecko/geckotrail 标明浏览器基于Gecko。表示该浏览器基于 Gecko 渲染引擎。在桌面端, geckotrail是固定字符串"20100101"。
- Firefox/firefoxversion 标明浏览器是Firefox,并提供了版本号(如"17.0")。自从移动版Firefox 10开始,geckotrail与firefoxversion 保持一致。
(如果你必须检测浏览器引擎,而不是去做特征检测的话)推荐的检测浏览器基于Gecko的方法,是使用"Gecko"与"rv:"字符串。这是因为有一些浏览器的UA中也包含了"like Gecko"字段。
对于其他基于Gecko的产品,UA字符串会符合以下两个规则中的一个,除了下面的描述外,其它字段与上面描述的意义相同。
Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail appname/appversion Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion appname/appversion
- appname/appversion 标明了应用名与版本,举个例子,这个字段可以是"Camino/2.1.1"或"SeaMonkey/2.7.1"。
Firefox/firefoxversion 是一个可选的兼容字段,一些基于Gecko的浏览器选择加入,以使那些支持Firefox的网页进行最大的兼容。firefoxversion应与其提供的Gecko版本对应的Firefox版本相同。一些基于Gecko的浏览器可能未加入此此段,因此,在检测的时候,应当使用"Gecko"而非"Firefox"。这个字段是否展示,由"general.useragent.compatMode.firefox"中设定的布尔值控制。
标明移动设备与平板设备
UA字符串的platform部分,标明了Firefox是否运行在手机或平板尺寸的设备上。当Firefox运行在移动设备上时,UA中的这个字段将包含Mobile;。当Firefox运行于平板设备时,UA中的这个字段将包含Tablet;。例如:
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0 Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0
上述版本号并不对应,请避免基于版本号做此判断
推荐的判断设备尺寸的方法是使用CSS媒体查询(CSS Media Query)。但是,当你需要使用UA判断用户是否使用移动尺寸的设备,请查找"Mobi"(以兼容使用"Mobi"的Opera移动浏览器)。不要假定"Android"字符串与设备尺寸存在关联。这样的话,在“Firefox在其它操作系统的移动尺寸设备上运行”或“使用Android的笔记本电脑”的情形下,你的代码才能正确运行。此外,请使用触摸检测以分辨设备是否支持触摸,不要使用"Mobi"或"Tablet",因为也有很多触摸设备并非移动设备或平板。
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
Firefox OS设备的UA中不会有标明操作系统的字段,比如"Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0
"。因为其平台是web。
Windows
Windows中的UA字符串会发生以下变化,其中x.y代表Windows NT 版本,(如:Windows NT 6.1)。
此处表格排版只适合电脑浏览
Windows 版本 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved | Gecko UA字符串 |
---|---|
Windows NT on x86 本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利 | Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0 |
Windows NT, Win64 on x64 | Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0 |
Windows NT, WOW64 | Mozilla/5.0 (Windows NT x.y; WOW64; rv:10.0) Gecko/20100101 Firefox/10.0 |
Macintosh
在此,x.y是Mac OS X的版本 (如:Mac OS X 10.6)。
此处表格排版只适合电脑浏览
本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved
Mac OS X 版本 | Gecko UA字符串 |
---|---|
Mac OS X on Intel x86 or x86_64 | Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved |
Mac OS X on PowerPC | Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved |
Linux
Linux平台更为多样,下面给出了几个常见的例子。
此处表格排版只适合电脑浏览
Linux 版本 | Gecko UA字符串 |
---|---|
Linux desktop, i686 | Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 |
Linux desktop, x86_64 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved | Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved |
Linux desktop, i686 running on x86_64 | Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 |
Nokia N900 Linux mobile, on the Fennec browser | Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0 |
Android (40版本及以下)
此处表格排版只适合电脑浏览
设备尺寸 | Gecko UA字符串 |
---|---|
Phone 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved | Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0 |
Tablet | Mozilla/5.0 (Android; Tablet; rv:40.0) Gecko/40.0 Firefox/40.0 |
Android (41版本及以上)
从41版本开始,Android版的Firefox会在platform字段中包含Android版本号。为增加共通性,如果浏览器在Android 4以下版本运行,此字段会使用4.4,Android 4.4及以上版本会使用当前版本号。请注意,发布到不同Android版本的Gecko,是拥有相同兼容性的同个Gecko。
此处表格排版只适合电脑浏览
设备尺寸 | Gecko UA字符串 |
---|---|
Phone | Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved |
Tablet | Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0 |
Firefox OS
此处表格排版只适合电脑浏览
设备尺寸 本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved | Gecko UA字符串 |
---|---|
Phone | Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0 |
Tablet | Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0 本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利 |
TV | Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0 |
Device-specific | Mozilla/5.0 (Mobile; nnnn; rv:26.0) Gecko/26.0 Firefox/26.0 |
本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利
具有设备特征的UA字符串
尽管Mozilla强烈反对,然而一些手机制造商仍然在其设备的UA字符串中,包含了标明设备id的字段。在这种情况下,Firefox OS的UA字符串会与上表中所示的具有设备特征(Device-specific)的字符串保持一致,其中nnnn;代表设备制造商的设备代码。其中一些是以下几个形式: "NexusOne;","ZTEOpen;","Open C;"(另请注意,也不鼓励在其中加入空格)。我们提供这些信息以辅助您指定UA判断逻辑,但Mozilla不鼓励从UA字符串中检测设备id。
这里有一个可以检测所有移动设备的JavaScript正则表达式,包含那些UA字符串中包含设备id的设备:
/mobi/i
其中 i 为大小写敏感的标记,而 mobi 则将匹配所有的移动设备。
本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利
Firefox OS 版本号
由于Firefox OS未被包含于UA字符串中,我们可以通过UA字符串中的Gecko版本号来推断其版本信息。
此处表格排版只适合电脑浏览
Firefox OS 版本号 | Gecko 版本号 |
---|---|
1.0.1 | 18.0 |
1.1 | 18.1 |
1.2 | 26.0 |
1.3 | 28.0 |
1.4 | 30.0 |
2.0 | 32.0 |
2.1 | 34.0 |
2.2 | 37 本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利 |
2.5 | 44 |
通过查看Mercurial发布的名字,可以较容易地找出对应关系。其中以 mozilla-b2g 开头的发布便属于Firefox OS,在其名字中包含了Firefox OS和Gecko的版本号。
Firefox OS的版本号由4位数字组成:X.X.X.Y。前两位数字由Mozilla产品团度决定,表明是包含新特性的版本(如:v1.1, 1.2等)。第三位数字随安全更新而自增(约6周左右),第四位数字由OEM维护。
iOS中的Firefox
iOS用户的Firefox使用的是Safari移动版默认的UA字符串,再增加了FxiOS/<version>字段,与iOS中的Chrome标记自己的方式一致。
此处表格排版只适合电脑浏览
设备尺寸 | Firefox iOS UA字符串 |
---|---|
iPod | Mozilla/5.0 (iPod touch; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4 |
iPhone | Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4 |
iPad | Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4 |
Firefox Web 运行时(Web Runtime)
在Firefox Web运行时(Web Runtime)中,使用与桌面版Firefox一致的UA字符串。
其他基于Gecko的浏览器
以下是不同平台下,一些基于Gecko的浏览器的UA字符串样例。请注意,其中很多并未基于Gecko 2.0发布。
此处表格排版只适合电脑浏览
本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利
浏览器 | Gecko UA字符串 |
---|---|
Firefox for Maemo (Nokia N900) | Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1 |
Camino on Mac | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1 |
SeaMonkey on Windows | Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1 |
SeaMonkey on Mac | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1 |
SeaMonkey on Linux | Mozilla/5.0 (X11; Linux i686; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1 |