【发布时间】:2018-05-23 07:54:51
【问题描述】:
Edge 用户代理看起来像这样:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063
(最后注意Edge/15.15063)
现在,当我在 Edge 中查找实际浏览器版本时,我会看到有关应用的以下信息:
Microsoft Edge 40.15063.674.0
Microsoft EdgeHTML 15.15063
所以你看,用户代理实际上是用 EdgeHTML 版本响应的。
我的问题是,我如何获得 Edge 版本? (不是 EdgeHTML 版本)
C# 更糟糕:他的 Request.Browser 静态类响应为 浏览器:“Chrome”,版本:“52.0”,所以这是不可能的。
【问题讨论】:
-
用户代理字符串是出了名的难以理解。首先,它可以被欺骗。但内容也可能因系统上安装的其他浏览器而异。顺序可能并不总是相同的。其他浏览器可能包含您要查找的数据,但实际上不是 Edge(例如,它们可能是 Firefox,但报告已安装 Edge)
-
Edge UA 字符串以
Edge/<version>结尾是不是不够好? -
与网页相关的是引擎版本(EdgeHTML 15.15063),因为它决定了可用的功能。浏览器版本与此无关。一般来说,我建议不要使用浏览器版本来检查可用功能,而是使用像 modernizr 这样的工具来检查特定功能。
-
使用特征检测。
标签: javascript c# browser microsoft-edge user-agent