【问题标题】:Detect browser and version - no Modernizr检测浏览器和版本 - 没有 Modernizr
【发布时间】:2019-01-24 05:08:03
【问题描述】:

出于特定原因,我需要精确检测浏览器名称和版本。在此处和其他网络上搜索,大多数答案都指向 Modernizr 和检测功能。那不是我想要的。我想获取实际名称和版本。

这意味着:

  • 如果是 Edge,我需要知道它的版本,而不是 EdgeHTML 版本(可选,但如果我能得到这些数据就太好了)

  • 如果是 Vivaldi,那就别告诉我是 Safari 还是 Chrome,它是 Vivaldi。

  • 如果它是我没听说过的浏览器,并且不在我在用户代理中搜索的列表中,我需要知道它的名称(和版本)。

我尝试使用 .NET 混合 userAgent 数据和 HttpContext.Current.Request.Browser 类(甚至考虑操作系统)。 但是,它发送的数据不明确,有时无法识别 Chrome。

可能的解决方案可以是 JS/jQuery,不一定是 .NET。

编辑: 有人说这可能是重复:How can you detect the version of a browser? 不是,因为我用 Vivaldi 测试过它

(用户代理:Mozilla/5.0(Windows NT 10.0;WOW64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/64.0.3282.189 Safari/537.36 Vivaldi/1.95.1077.60)

它输出的是 Chrome 64,所以它不符合我上面所说的标准

【问题讨论】:

标签: javascript c# asp.net browser user-agent


【解决方案1】:

由于navigator.userAgent 字符串有时可能有点古怪,我通常依靠像useragent 这样的库来为我解析它。

如果您不希望添加另一个依赖项,您至少可以将其用作了解如何更好地解析 userAgent 字符串的起点。

【讨论】:

    【解决方案2】:

    试试这个

    jQuery.browser 和 jQuery.browser.version

    完整的答案在这里: How to get browser's name client side?

    希望对你有所帮助;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-31
      • 2016-03-21
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多