我正在为我工作的学校做浏览器检查。我有一个.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;
发布于 2016-03-29 22:56:34
由于(公共) EdgeHTML版本与边缘浏览器版本一对一映射,因此您可以执行以下操作:
// 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);
}
EDIT:一种更简单、更直接的方法:
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浏览器版本。
发布于 2016-03-29 22:59:38
如果您还打算测试其他浏览器,可以尝试使用browser npm
包。
https://stackoverflow.com/questions/36287601
复制相似问题