基本上,这就是我使用 navigator.userAgent 属性获取浏览器名称及其当前版本的方式,但是 userAgent 属性给出了与我们为 chrome 浏览器获得的完全相同的输出,并且没有特定/不同的子字符串可以通过它来识别勇敢的浏览器的名称或版本。有人可以建议如何获取勇敢浏览器的名称和版本的方法吗?谢谢
我在 StackOverflow 上的另一篇文章中尝试了这种方法
(navigator.brave && await navigator.brave.isBrave() || false)
但是此方法使用 Safari 5.1.7(Windows 最新版本)和 IE 11 不支持的 async-await,因此如果我使用 async-await 方法,我会在 Safari 和 IE 11 的控制台中遇到错误。
(function browserOk() {
var browserName;
var browserVersion;
var ua = navigator.userAgent;
console.log(navigator.userAgent);
M = ua.match(/(opr|chrome|edg|safari|firefox(?=\/))\/?\s*(\d+)/i) || [];
console.log(M);
browserName = M[1];
browserVersion = M[2];
if(ua.toLowerCase().indexOf('rv') > -1 && ua.toLowerCase().indexOf('trident') > -1) {
var versionIdentifierForIE = /\brv[ :]+(\d+\.\d+)/g.exec(ua) || [];
browserName = "Internet Explorer";
browserVersion = versionIdentifierForIE[1];
}
if(ua.toLowerCase().indexOf('chrome') > -1 ) {
var versionIdentifierForChrome = /\bchrome(?=\/)\/?\s*(\d+\.\d+\.\d+\.\d+)/i.exec(ua) || [];
browserName = "Google Chrome";
browserVersion = versionIdentifierForChrome[1];
}
if(ua.toLowerCase().indexOf('firefox') > -1 ) {
var versionIdentifierForFirefox = /\bfirefox(?=\/)\/?\s*(\d+\.\d+)/i.exec(ua) || [];
browserName = "Mozilla Firefox";
browserVersion = versionIdentifierForFirefox[1];
}
if(ua.toLowerCase().indexOf('edg') > -1) {
browserName = "Microsoft Edge";
var versionIdentifierForEdge = /\bedg(?=\/)\/?\s*(\d+\.\d+\.\d+\.\d+)/i.exec(ua) || [];
browserVersion = versionIdentifierForEdge[1];
}
if(ua.toLowerCase().indexOf('safari') > -1 && ua.toLowerCase().indexOf('chrome') === -1) {
browserName = "Safari"
var versionIdentifierForSafari = /\bversion(?=\/)\/?\s*(\d+\.\d+\.\d+)/i.exec(ua) || [];
browserVersion = versionIdentifierForSafari[1];
}
if(ua.toLowerCase().indexOf('opr') > -1) {
browserName = "Opera";
var versionIdentifierForOpera = /\bopr(?=\/)\/?\s*(\d+\.\d+\.\d+\.\d+)/i.exec(ua) || [];
browserVersion = versionIdentifierForOpera[1];
}
document.getElementById('name').innerText = "Browser Name : " + browserName;
document.getElementById('version').innerText = "Browser Version : " + browserVersion;
})()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Practice</title>
</head>
<body>
<h1 style="text-decoration: underline;">This is a Browser Detection Page</h1>
<h1 id="name"></h1>
<h1 id="version"></h1>
<h1 id="message"></h1>
<script src="practice.js"></script>
</body>
</html>