在Javascript中,我如何获取Edge的browserUserAgent的输出并将其转换为Edge'的浏览

In Javascript, how would I take the output of browserUserAgent for Edge and converti it into Edge's browser version?

本文关键字:Edge 输出 转换 浏览 browserUserAgent Javascript 何获取 获取      更新时间:2023-09-26

我正在为我工作的学校进行浏览器检查。我有一个.js文件,我在其中将信息拉到html页面,以显示浏览器的名称及其版本。不幸的是,对于Windows Edge,显示的令牌是13.1或12.1,具体取决于您使用的Edge版本。

这些是edgeHTML版本,而不是Edge的实际显示版本。我一直试图找到一种方法来显示实际的Edge版本20和25,但没有取得任何进展。

我尝试过使用IF ELSE语句,但当我这样做时,无论我使用的是Edge 20还是Edge 25,它都只是呈现语句IF部分第二行中列出的数字。请帮忙。

case browserUserAgent.indexOf('edge') >= -1: // browser is Edge, check the gorilla first
    browserAgent = 'Edge';
    browserVersion = browserUserAgent.split('edge/');
    browserVersion = browserVersion[1].split(0, 3);
    browserVersion = browserVersion[0];
    if (browserVersion = '12.1') {
        browserVersion = '20';
    } else if (browserVersion = '13.1') {
        browserVersion = '25';
    }
    break;

由于(公共)EdgeHTML版本对Edge浏览器版本进行1对1映射,因此可以执行以下操作:

// map (major versions of) EdgeHTML to Edge
var EDGEHTML_TO_EDGE = {
    12: 20,
    13: 25
};
// regexp which matches edge user strings
var EDGE_REGEXP = /Edge'/('d+)/;
// check if the regexp matches the user agent
var edgeMatch = browserUserAgent.match(EDGE_REGEXP);
if (edgeRegexp) {
    var edgeHtmlVersion = edgeMatch[1]; // the major EdgeHTML version number
    var edgeVersion = EDGEHTML_TO_EDGE[edgeHtmlVersion];
    document.write('You are running Edge ' + edgeVersion);
}

编辑:一种更简单直接的方法:

if (/Edge'/12'.1/.test(browserUserAgent)) {
    document.write('You are running Edge 20');
} else if (/Edge'/13'.1/.test(browserUserAgent)) {
    document.write('You are running Edge 25');
}

我还没能自己测试,因为我没有Edge,但它应该会给你这个想法。我基本上得到了用户代理报告的主要版本号,然后将其映射到已知的Edge浏览器版本。

如果您也打算测试其他浏览器,可以尝试浏览器npm包。