【发布时间】: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,所以它不符合我上面所说的标准
【问题讨论】:
-
通常我使用
NavigatorAPI 来获取浏览器信息,我使用来自Navigator的所需数据对服务器进行ajax 调用,并且在服务器中您可以读取这些数据。 developer.mozilla.org/en-US/docs/Web/API/Navigator -
我认为modernizr 不支持这个feature
-
@IteratioN7T 不,它不是重复的,请参阅我上面的编辑
标签: javascript c# asp.net browser user-agent