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

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

出于特定原因,我需要精确检测浏览器名称和版本。在这里和网络的其余部分进行搜索,大多数答案都指向 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,所以它不符合我上面所说的标准

最佳答案

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

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

关于javascript - 检测浏览器和版本 - 没有 Modernizr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51890603/

相关文章:

javascript - 延迟时间个人cordova插件

javascript - 链接 Javascript promise

c# - 如何将此 Parallel.ForEach 代码转换为异步/等待

c# - ASP Net MVC 5 SiteMap-将面包屑构建到另一个 Controller

javascript - 在 firefox 上将 <div> 内容下载为 html

javascript - 在日期选择器 JavaScript 中显示下拉菜单指示的月份

C# 使用 webbrowser 文档文本,文档保持为空

c# - 是否可以在 MS Entity Framework 中查询新添加的对象

asp.net - 全局覆盖 Page_PreInit() 而不子类化 Page?

c# - 在 ASP.NET Core 的存储库模式中使用接口(interface)和抽象类