如何检测浏览器的版本

如何检测浏览器的版本

本文介绍了在启用JavaScript的Web浏览器中进行浏览器检测的基本理论和技巧。

描述: 尽管大多数脚本都适用于启用JavaScript的Web浏览器,但某些功能在某些浏览器上可能无法正常工作,即与浏览器有关,并且在某些情况下,旧的Web浏览器可能不支持某些脚本。

在某些情况下,了解客户端的Web浏览器非常重要,以便适当地提供某些内容或信息。基本上,它允许您了解客户端的Web浏览器版本和名称,而我们需要为不同的浏览器编写不同的函数以进行检测。

浏览器检测: 主要有两个对象用于浏览器检测,如下所示:

  • navigator.appName
  • navigator.appVersion

第一个对象的目的是确定Web浏览器,而第二个对象的目的是确定Web浏览器的版本。

例如,如果浏览器是Mozilla Firefox,navigator.appName返回字符串“Mozilla Firefox”。如果是Edge,navigator.appName返回字符串“Microsoft Edge”。使用这两个对象,我们可以创建一个提示框来显示客户端正在使用的Web浏览器,而这个navigator对象包含有关Web浏览器版本、名称等的所有信息。

示例: 这个示例展示了上述方法的应用。

<script Language="JavaScript">
    var objappVersion = navigator.appVersion;
    var browserAgent = navigator.userAgent;
    var browserName = navigator.appName;
    var browserVersion = '' + parseFloat(navigator.appVersion);
    var browserMajorVersion = parseInt(navigator.appVersion, 10);
    var Offset, OffsetVersion, ix;

    // For Chrome 
    if ((OffsetVersion = browserAgent.indexOf("Chrome")) != -1) {
        browserName = "Chrome";
        browserVersion = browserAgent.substring(OffsetVersion + 7);
    }

    // For Microsoft internet explorer 
    else if ((OffsetVersion = browserAgent.indexOf("MSIE")) != -1) {
        browserName = "Microsoft Internet Explorer";
        browserVersion = browserAgent.substring(OffsetVersion + 5);
    }

    // For Firefox
    else if ((OffsetVersion = browserAgent.indexOf("Firefox")) != -1) {
        browserName = "Firefox";
    }

    // For Safari
    else if ((OffsetVersion = browserAgent.indexOf("Safari")) != -1) {
        browserName = "Safari";
        browserVersion = browserAgent.substring(OffsetVersion + 7);
        if ((OffsetVersion = browserAgent.indexOf("Version")) != -1)
            browserVersion = browserAgent.substring(OffsetVersion + 8);
    }

    // For other browser "name/version" is at the end of userAgent 
    else if ((Offset = browserAgent.lastIndexOf(' ') + 1) <
        (OffsetVersion = browserAgent.lastIndexOf('/'))) {
        browserName = browserAgent.substring(Offset, OffsetVersion);
        browserVersion = browserAgent.substring(OffsetVersion + 1);
        if (browserName.toLowerCase() == browserName.toUpperCase()) {
            browserName = navigator.appName;
        }
    }

    // Trimming the fullVersion string at 
    // semicolon/space if present 
    if ((ix = browserVersion.indexOf(";")) != -1)
        browserVersion = browserVersion.substring(0, ix);
    if ((ix = browserVersion.indexOf(" ")) != -1)
        browserVersion = browserVersion.substring(0, ix);


    browserMajorVersion = parseInt('' + browserVersion, 10);
    if (isNaN(browserMajorVersion)) {
        browserVersion = '' + parseFloat(navigator.appVersion);
        browserMajorVersion = parseInt(navigator.appVersion, 10);
    }
    document.write(''
        + '浏览器名称 = ' + browserName + '<br>'
        + '完整版本号 = ' + browserVersion + '<br>'
        + '主要版本号 = ' + browserMajorVersion + '<br>'
        + 'navigator.appName = ' + navigator.appName + '<br>'
        + 'navigator.userAgent = ' + navigator.userAgent + '<br>'
    );
</script>
HTML

输出:

以下输出表示针对“Chrome”浏览器的浏览器检测输出

浏览器名称 = Chrome
完整版本号 = 86.0.4240.183
主要版本号 = 86
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64)
                      AppleWebKit/537.36 (KHTML, like Gecko)
                      Chrome/86.0.4240.183
Safari/537.36
HTML

以下输出表示针对“Mozilla Firefox”浏览器的浏览器检测输出

浏览器名称 = Firefox
完整版本号 = 5
主要版本号 = 5
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0)
                      Gecko/20100101
Firefox/80.0
HTML

结论: 本文从浏览器检测理论开始,然后解释了浏览器检测方案和检测脚本。在当前环境中,这非常有益,因为所有浏览器都支持此应用程序。因此,首先检测/查找浏览器,然后编写相应的代码。

阅读更多:JavaScript 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册