0

基本上,这就是我使用 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>

4

0 回答 0