如何使用JavaScript检测用户浏览器(Safari、Chrome、IE、Firefox和Opera)

如何使用JavaScript检测用户浏览器(Safari、Chrome、IE、Firefox和Opera)

可以使用JavaScript来检查当前打开页面的浏览器。

navigator对象的userAgent属性用于返回浏览器发送的用户代理头字符串。这个用户代理字符串包含有关浏览器的信息,包括一些关键字,可以检测这些关键字是否存在。

可以使用indexOf()方法来检测特定的用户字符串。indexOf()方法用于返回字符串中指定字符串值的第一个匹配项。如果值不存在于字符串中,则返回“-1”。

可以使用navigator.userAgent属性来访问浏览器的用户代理字符串,然后将其存储在一个变量中。逐个检测这个用户代理字符串中的每个浏览器字符串的存在。

  • 检测Chrome浏览器: Chrome浏览器的用户代理是“Chrome”。将这个值传递给indexOf()方法,在用户代理字符串中检测这个值。

由于indexOf()方法返回的值大于“-1”来表示搜索成功,因此使用“大于”运算符来返回一个布尔值,表示搜索是否成功。对于所有以下测试都是这样做的。

// 检测Chrome 
let chromeAgent = userAgentString.indexOf("Chrome") > -1; 
  • 检测Internet Explorer浏览器: Internet Explorer浏览器的用户代理是“MSIE”或“rv:”。将这两个值传递给indexOf()方法,在用户代理字符串中检测这个值,并将两者的结果与OR运算符结合使用。
// 检测Internet Explorer 
let IExplorerAgent = userAgentString.indexOf("MSIE") > -1 ||  
                     userAgentString.indexOf("rv:") > -1; 
  • 检测Firefox浏览器: Firefox浏览器的用户代理是“Firefox”。将这个值传递给indexOf()方法,在用户代理字符串中检测这个值。
// 检测Firefox 
let firefoxAgent = userAgentString.indexOf("Firefox") > -1; 
  • 检测Safari浏览器: Safari浏览器的用户代理是“Safari”。将这个值传递给indexOf()方法,在用户代理字符串中检测这个值。

在Safari浏览器的情况下,还需要进行额外的检查,因为Chrome浏览器的用户代理也包括Safari浏览器的用户代理。如果Chrome和Safari的用户代理都在用户代理中存在,那么意味着浏览器是Chrome,因此Safari浏览器的值被丢弃。

// 检测Safari 
let safariAgent = userAgentString.indexOf("Safari") > -1; 
  
// 丢弃Safari,因为它也匹配Chrome 
if ((chromeAgent) && (safariAgent)) safariAgent = false; 
  • 检测Opera浏览器: Opera浏览器的用户代理是“OP”。将这个值传递给indexOf()方法,在用户代理字符串中检测这个值。

在这个浏览器的情况下,还需要进行额外的检查,因为Opera浏览器的用户代理也包括Chrome浏览器的用户代理。如果Chrome和Opera的用户代理都在用户代理中存在,那么意味着浏览器是Opera,因此Chrome浏览器的值被丢弃。

// 检测Opera 
let operaAgent = userAgentString.indexOf("OP") > -1; 
  
// 丢弃Chrome,因为它也匹配Opera         
if ((chromeAgent) && (operaAgent)) chromeAgent = false; 

示例:

<!DOCTYPE html> 
<html> 
      
<head> 
    <title> 
        How to detect Safari, Chrome, IE, Firefox 
        and Opera browser using JavaScript? 
    </title> 
</head> 
  
<body> 
    <h1 style="color: green">GeeksforGeeks</h1> 
      
    <b> 
        How to detect Safari, Chrome, IE, Firefox 
        and Opera browser using JavaScript? 
    </b> 
      
    <p> 
        Click on the button to detect 
        the current browser 
    </p> 
      
    <p> 
        Is Safari?  
        <span class="output-safari"></span> 
    </p> 
      
    <p> 
        Is Chrome?  
        <span class="output-chrome"></span> 
    </p> 
      
    <p> 
        Is Internet Explorer?  
        <span class="output-ie"></span> 
    </p> 
      
    <p> 
        Is Firefox?  
        <span class="output-firefox"></span> 
    </p> 
      
    <p> 
        Is Opera browser?  
        <span class="output-opera"></span> 
    </p> 
      
    <button onclick="checkBrowser()"> 
        Detect browser 
    </button> 
      
    <script> 
        function checkBrowser() { 
          
            // Get the user-agent string 
            let userAgentString =  
                navigator.userAgent; 
          
            // Detect Chrome 
            let chromeAgent =  
                userAgentString.indexOf("Chrome") > -1; 
          
            // Detect Internet Explorer 
            let IExplorerAgent =  
                userAgentString.indexOf("MSIE") > -1 ||  
                userAgentString.indexOf("rv:") > -1; 
          
            // Detect Firefox 
            let firefoxAgent =  
                userAgentString.indexOf("Firefox") > -1; 
          
            // Detect Safari 
            let safariAgent =  
                userAgentString.indexOf("Safari") > -1; 
                  
            // Discard Safari since it also matches Chrome 
            if ((chromeAgent) && (safariAgent))  
                safariAgent = false; 
          
            // Detect Opera 
            let operaAgent =  
                userAgentString.indexOf("OP") > -1; 
                  
            // Discard Chrome since it also matches Opera      
            if ((chromeAgent) && (operaAgent))  
                chromeAgent = false; 
          
            document.querySelector(".output-safari").textContent 
                        = safariAgent; 
            document.querySelector(".output-chrome").textContent 
                        = chromeAgent; 
            document.querySelector(".output-ie").textContent 
                        = IExplorerAgent; 
            document.querySelector(".output-opera").textContent 
                        = operaAgent; 
            document.querySelector(".output-firefox").textContent 
                        = firefoxAgent; 
        } 
    </script> 
</body> 
  
</html> 

输出:

  • Chrome浏览器上的输出:

如何使用JavaScript检测用户浏览器(Safari、Chrome、IE、Firefox和Opera)

  • Firefox浏览器上的输出:

如何使用JavaScript检测用户浏览器(Safari、Chrome、IE、Firefox和Opera)

  • Opera浏览器上的输出:

如何使用JavaScript检测用户浏览器(Safari、Chrome、IE、Firefox和Opera)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程