【问题标题】:Detecting Edge browser version (using Javascript or C#)检测 Edge 浏览器版本(使用 Javascript 或 C#)
【发布时间】: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


【解决方案1】:

简短的回答是,如果您想在服务器或客户端上以编程方式获取软件版本号,则不能。浏览器不会公开它。

我不认为这是出于任何原因您应该做的事情,因为在检测浏览器版本时,有几十种替代方法可以做任何人想做的任何事情。

但是,如果您真的想获得实际版本,那么wikipedia 中有一个表格,其中包含 EdgeHTML 布局引擎版本和 Edge 版本之间的一一对应关系。似乎没有同一个 Edge 版本有多个 EdgeHTML 版本的情况。您必须手动维护该列表。

例如:

15.15063 映射到 2017 年 4 月 11 日发布的桌面版 40.15063

【讨论】:

    猜你喜欢
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 2014-09-14
    • 2011-03-10
    • 1970-01-01
    • 2014-12-28
    相关资源
    最近更新 更多