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