64

我正在制作一个网站,我希望它与即将推出的 Microsoft Edge 正式发布时兼容。更具体地说,它的移动版本。有谁知道哪个字符串可以标识 Edge 移动浏览器(例如,“IE Mobile”标识了 Internet Explorer 的移动版本)。

4

10 回答 10

100

Microsoft Edge UA 字符串:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

我在这篇博文中详细说明了原因。

Neowin 最近报道称,微软针对 Windows 10 的新浏览器 Spartan 使用 Chrome UA 字符串“Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 ”。 这是故意的。

您还会注意到整个字符串以“Edge/12.0”结尾,而 Chrome 没有。

我应该指出,这与 Microsoft 对 IE 11 所做的做法并没有完全不同,在 Windows 8 上显示为:Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko,如本文所述邮政。

什么是用户代理嗅探?

通常,Web 开发人员会通过 UA 嗅探来检测浏览器。Mozilla 在他们的博客上很好地解释了这一点:

为不同的浏览器提供不同的网页或服务通常是个坏主意。网络意味着每个人都可以访问,无论他们使用哪种浏览器或设备。有多种方法可以开发您的网站,以根据功能的可用性而不是针对特定浏览器来逐步增强自身。

这是一篇很棒的文章,解释了用户代理的历史。

通常,懒惰的开发人员只会嗅探 UA 字符串并根据他们认为查看者使用的浏览器禁用他们网站上的内容。Internet Explorer 8 对开发人员来说是一个常见的挫折点,因此他们会经常检查用户是否使用任何版本的 IE,并禁用功能。

Edge 团队在他们的博客上对此进行了更深入的详细介绍。

所有用户代理字符串都包含有关其他浏览器的信息,而不是您正在使用的实际浏览器——不仅是令牌,还有“有意义的”版本号。

Internet Explorer 11 的 UA 字符串:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) 像 Gecko

Microsoft Edge UA 字符串:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

userAgent 属性被 Patrick H. Lauke 在 W3C 讨论中恰当地描述为“不断增长的谎言包”。(“或者更确切地说,添加足够多的旧关键字不会立即让旧的 UA 嗅探代码崩溃,同时仍试图传达一些实际有用和准确的信息的平衡行为。”)

我们建议 Web 开发人员尽可能避免 UA 嗅探;现代网络平台功能几乎都可以通过简单的方式检测到。例如,Modernizr库是检测特征的一种奇妙而简单的方法。

在过去的一年中,我们看到一些 UA 嗅探站点已更新以检测 Microsoft Edge……只是为其提供了旧版 IE11 代码路径。这不是最好的方法,因为 Microsoft Edge 匹配“WebKit”行为,而不是 IE11 行为(任何 Edge-WebKit 差异都是我们有兴趣修复的错误)。

根据我们的经验,Microsoft Edge 在这些站点的“WebKit”代码路径上运行最好。此外,随着互联网在更广泛的设备上可用,请假设未知浏览器是好的 - 请不要将您的网站限制为仅在一小部分当前已知的浏览器上运行。如果你这样做,你的网站几乎肯定会在未来崩溃。

结论

通过提供 Chrome UA 字符串,我们可以解决这些开发人员使用的黑客攻击,为用户提供最佳体验。

于 2015-07-07T21:51:50.603 回答
12

有一篇关于使用“User-Agent”进行浏览器检测的MDN 文章,以及在执行类似操作时应注意的事项。

除此之外,MSDN 库描述了“Edge”的用户代理更改。

从 MSDN用户代理字符串更改页面:

适用于 Windows 10 Mobile Insider Preview 的 Microsoft Edge 具有以下用户代理字符串:

Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; DEVICE INFO) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.<OS Build #>

于 2015-06-04T14:21:32.230 回答
8

对于那些寻找正则表达式来检测 IEMicrosoft Edge 的人,我从另一个SO 答案中重新使用了一个并添加了 Edge

/(?:\b(MS)?IE\s+|\bTrident\/7\.0;.*\s+rv:|\bEdge\/)(\d+)/

我让它检查 Edge,然后检查其他数字,以防他们决定迭代 Edge 版本。

编辑:要更新是,Edge 和旧 IE 版本都被认为是非常不同的浏览器。我的用例需要检测 IE 品牌浏览器以用于营销目的(如果用户使用任何 Internet Explorer/Edge 浏览器,我们想为此展示一些东西),但您可能不一定是这种情况。

于 2015-11-03T17:43:48.620 回答
2

目前,Web 代理不是调整您的站点的关键点,但您应该检测浏览器功能。

就此而言,您应该使用诸如Modernizr之类的库来检查特定的浏览器功能,而与使用用户的浏览器供应商或版本无关。

注意:尽管投反对票,但每个人都应该查看此问答中的其他答案,该答案广泛解释了我总结答案背后的原因,其中答案提供证明许多浏览器供应商不鼓励进行用户代理嗅探。这就是我自己回答背后的原因,我建议每个人都根据功能而不是特定浏览器来调整他们的网站。

于 2015-06-02T09:06:17.170 回答
2

Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; DEVICE INFO) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Mobile Safari/537.36 Edge/12.0

于 2015-07-09T14:50:57.250 回答
2

您忘记了 SA 需要知道浏览器类型才能向 mgmt 报告。为了准确起见,必须清楚正在使用什么浏览器。在干净的构建中,Edge 用户代理没有“EDGE”关键字:

Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)

于 2015-11-19T17:47:02.927 回答
1

您始终可以通过以下方式检查用户代理字符串

  1. 按 F12 进入开发者工具
  2. 制表符:控制台
  3. 类型:“navigator.userAgent”+点击返回

适用于 IE、Edge、Chrome..

在 IE 和 Edge 中,您可以简单地为 Tabulator:Emulation 上的当前窗口覆盖它,字段“用户代理字符串”并选择“自定义”...

于 2019-12-11T09:59:53.977 回答
1

用户代理覆盖

有时,网站无法识别 Microsoft Edge UA 的更新版本。因此,该网站的一组功能可能无法正常工作。当 Microsoft 收到有关此类问题的通知时,将联系网站所有者并告知更新的 UA。

这些站点通常需要一些时间来更新和测试 UA 检测逻辑,以解决 Microsoft 向站点所有者报告的问题。在这些情况下,Microsoft 在我们的 Beta 和 Stable 渠道中使用 UA 覆盖列表,以最大限度地为访问这些站点的用户提供兼容性。覆盖指定 Microsoft Edge 应发送的新 UA 值,而不是特定站点的默认 UA。edge://compat/useragent您可以通过导航到Microsoft Edge 的 Beta 和 Stable 通道来查看当前正在应用的 UA 覆盖列表。

转到此页面以获取有关用户代理字符串的更多详细信息

于 2021-02-04T12:42:07.360 回答
1

您可以在https://docs.microsoft.com/en-us/microsoft-edge/web-platform/user-agent-string找到最新的用户代理 (UA) 字符串。在撰写本文时,它是

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.74 Safari/537.36 Edg/79.0.309.43.

有趣的是,它在服用时也对我有用Mozilla/5.0

于 2020-10-25T19:53:59.400 回答
-1

用户代理

User-Agent 请求标头是一个特征字符串,它让服务器和网络对等方识别请求用户代理的应用程序、操作系统、供应商和/或版本。

句法

User-Agent: <product> / <product-version> <comment>

网络浏览器的常用格式:

User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>

转到此页面以获取有关用户代理字符串的更多详细信息

于 2021-02-07T08:44:07.790 回答