JavaScript 如何检测浏览器的版本

JavaScript 如何检测浏览器的版本

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

描述: 尽管大多数脚本在启用JavaScript的网页浏览器上工作,但有些事情在某些浏览器上不起作用,即它们依赖于浏览器,在某些情况下旧的网页浏览器不支持某些脚本。
在某些情况下,了解客户端的网页浏览器以适当地提供某些内容或信息变得非常重要。基本上,它允许您了解客户端的网页浏览器版本和名称,并且在此处我们需要为不同的浏览器编写不同的函数以进行检测。

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

  • navigator.appName
  • navigator.appVersion

第一个对象用于确定网页浏览器,而第二个对象用于确定网页浏览器的版本。

例如,如果浏览器是Mozilla Firefox,navigator.appName返回字符串“Mozilla Firefox”。如果是Edge浏览器,navigator.appName返回字符串“Microsoft Edge”。使用这两个对象,我们可以创建一个警告框来显示客户端使用的是哪种网页浏览器,而此navigator对象包含有关网页浏览器版本、名称和更多信息的所有内容。

示例: 此示例显示了上述方法的使用。

<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(''
        + 'Name of Browser = ' + browserName + '<br>'
        + 'Full version = ' + browserVersion + '<br>'
        + 'Major version = ' + browserMajorVersion + '<br>'
        + 'navigator.appName = ' + navigator.appName + '<br>'
        + 'navigator.userAgent = ' + navigator.userAgent + '<br>'
    ); 
</script>
JavaScript

输出:

下面的输出表示对“Chrome”进行浏览器检测的输出结果

Name of Browser = Chrome 
Full version = 86.0.4240.183 
Major version = 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
JavaScript

下面的输出表示对“Mozilla Firefox”进行浏览器检测的输出

Name of Browser = Firefox 
Full version = 5 
Major version = 5 
navigator.appName = Netscape 
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) 
                      Gecko/20100101 
Firefox/80.0
JavaScript

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册