出于特定原因,我需要精确检测浏览器名称和版本。在此处和网络的其余部分进行搜索,大多数答案都指向Modernizr和检测功能。那不是我想要的我想获取实际的名称和版本。
这意味着:
如果是Edge,我需要知道它的版本,而不是EdgeHTML版本(可选,但是如果我能获得这些数据就太好了)
如果说维瓦尔第,那么别告诉我是Safari或Chrome,那就是维瓦尔第。
如果它是我从未听说过的浏览器,并且没有在用户代理中搜索到的列表中,则我需要知道它的名称(和版本)。
我尝试使用.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,因此不符合我上述的条件
答案 0 :(得分:1)
由于en
字符串有时可能有点时髦,因此我通常依靠useragent之类的库来为我解析。
如果您不想添加其他依赖项,则可以至少将其用作了解如何更好地解析navigator.userAgent
字符串的起点。
答案 1 :(得分:1)
尝试这个
jQuery.browser和jQuery.browser.version
完整的答案在这里: How to get browser's name client side?
希望它会有所帮助;)