繁体   English   中英

检测浏览器和版本-没有Modernizr

[英]Detect browser and version - no Modernizr

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

这意味着:

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

  • 如果是说维瓦尔第(Vivaldi),那就不要告诉我是Safari或Chrome,是维瓦尔第(Vivaldi)。

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

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

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

编辑:有人说这是可能的重复: 您如何检测浏览器的版本? 并非如此,因为我针对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,因此不符合我上述的条件

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

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

试试这个

jQuery.browser和jQuery.browser.version

完整答案在这里: 如何获取浏览器的名称客户端?

希望能帮助到你 ;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM