web-dev-qa-db-fra.com

Comment détecter les navigateurs Safari, Chrome, IE, Firefox et Opera?

J'ai 5 addons/extensions pour FF, Chrome, IE, Opera et Safari.

Comment reconnaître le navigateur de l'utilisateur et rediriger (une fois qu'un bouton d'installation a été cliqué) pour télécharger l'addon correspondant?

693
FrankC

Googler pour une détection fiable du navigateur entraîne souvent la vérification de la chaîne de l'agent utilisateur. Cette méthode est non fiable, car il est trivial d'usurper cette valeur.
J'ai écrit une méthode pour détecter les navigateurs par piratage .

Utilisez la méthode de détection du navigateur uniquement si cela est vraiment nécessaire, par exemple en affichant des instructions spécifiques au navigateur pour installer une extension. Utilisez la détection de fonctionnalité lorsque cela est possible.

Démo: https://jsfiddle.net/6spj1059/

_// Opera 8.0+
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';

// Safari 3.0+ "[object HTMLElementConstructor]" 
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));

// Internet Explorer 6-11
var isIE = /*@cc_on!@*/false || !!document.documentMode;

// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;

// Chrome 1 - 71
var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);

// Blink engine detection
var isBlink = (isChrome || isOpera) && !!window.CSS;


var output = 'Detecting browsers by ducktyping:<hr>';
output += 'isFirefox: ' + isFirefox + '<br>';
output += 'isChrome: ' + isChrome + '<br>';
output += 'isSafari: ' + isSafari + '<br>';
output += 'isOpera: ' + isOpera + '<br>';
output += 'isIE: ' + isIE + '<br>';
output += 'isEdge: ' + isEdge + '<br>';
output += 'isBlink: ' + isBlink + '<br>';
document.body.innerHTML = output;_

Analyse de fiabilité

Le méthode précédente dépendait des propriétés du moteur de rendu ( -moz-box-sizing et _-webkit-transform_) pour détecter le navigateur. Ces préfixes seront éventuellement supprimés. Pour rendre la détection encore plus robuste, je suis passé aux caractéristiques spécifiques du navigateur:

  • Internet Explorer: JScript compilation conditionnelle (jusqu'à IE9) et document.documentMode .
  • Edge: dans les navigateurs Trident et Edge, l'implémentation de Microsoft expose le constructeur StyleMedia. Exclure Trident nous laisse avec Edge.
  • Firefox: API de Firefox pour installer des add-ons: InstallTrigger
  • Chrome: Objet global chrome, contenant plusieurs propriétés, dont un objet chrome.webstore documenté.
    • La mise à jour 3 _chrome.webstore_ est obsolète et non définie dans les versions récentes
  • Safari: un modèle de dénomination unique dans la dénomination des constructeurs. C'est la méthode la moins durable de toutes les propriétés énumérées et devinez quoi? Dans Safari 9.1.3, cela a été corrigé. Nous vérifions donc que SafariRemoteNotification, introduit après la version 7.1, couvre tous les Safaris à partir de la version 3.0.
  • Opera: _window.opera_ existe depuis des années, mais sera supprimé lorsque Opera remplacera son moteur par Blink + V8 (utilisé par Chromium).
    • Mise à jour 1: Opera 15 a été publié , sa chaîne UA ressemble à Chrome, mais avec l'ajout de "OPR". Dans cette version, l'objet chrome est défini (mais _chrome.webstore_ ne l'est pas). Puisque Opera s'efforce de cloner Chrome, j'utilise le sniffing d'agent d'utilisateur à cette fin.
    • Mise à jour 2: _!!window.opr && opr.addons_ peut être utilisé pour détecter Opera 20 + (à feuilles persistantes).
  • Blink: CSS.supports()a été introduit dans Blink une fois que Google a activé Chrome 28. C'est bien sûr le même Blink que celui utilisé dans Opera.

Testé avec succès dans:

  • Firefox 0.8 - 61
  • Chrome 1.0 - 71
  • Opera 8.0 - 34
  • Safari 3.0 - 10
  • IE 6 - 11
  • Edge - 20-42

Mise à jour en novembre 2016 pour inclure la détection des navigateurs Safari à partir de la version 9.1.3.

Mise à jour en août 2018 pour mettre à jour les derniers tests réussis sur chrome, firefox IE et Edge.

Mise à jour en janvier 2019 afin de corriger la détection chrome (en raison de la dépréciation de window.chrome.webstore) et d'inclure les derniers tests réussis sur chrome.

1502
Rob W

Vous pouvez essayer la méthode suivante pour vérifier la version du navigateur.

    <!DOCTYPE html>
    <html>
    <body>
    <p>What is the name(s) of your browser?</p>
    <button onclick="myFunction()">Try it</button>
    <p id="demo"></p>
    <script>

    function myFunction() { 
     if((navigator.userAgent.indexOf("Opera") || navigator.userAgent.indexOf('OPR')) != -1 ) 
    {
        alert('Opera');
    }
    else if(navigator.userAgent.indexOf("Chrome") != -1 )
    {
        alert('Chrome');
    }
    else if(navigator.userAgent.indexOf("Safari") != -1)
    {
        alert('Safari');
    }
    else if(navigator.userAgent.indexOf("Firefox") != -1 ) 
    {
         alert('Firefox');
    }
    else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10
    {
      alert('IE'); 
    }  
    else 
    {
       alert('unknown');
    }
    }
    </script>

    </body>
    </html>

Et si vous avez besoin de connaître uniquement la version de navigateur IE, vous pouvez suivre le code ci-dessous. Ce code fonctionne bien pour les versions IE6 à IE11

<!DOCTYPE html>
<html>
<body>

<p>Click on Try button to check IE Browser version.</p>

<button onclick="getInternetExplorerVersion()">Try it</button>

<p id="demo"></p>

<script>
function getInternetExplorerVersion() {
   var ua = window.navigator.userAgent;
        var msie = ua.indexOf("MSIE ");
        var rv = -1;

        if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer, return version number
        {               

            if (isNaN(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))))) {
                //For IE 11 >
                if (navigator.appName == 'Netscape') {
                    var ua = navigator.userAgent;
                    var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
                    if (re.exec(ua) != null) {
                        rv = parseFloat(RegExp.$1);
                        alert(rv);
                    }
                }
                else {
                    alert('otherbrowser');
                }
            }
            else {
                //For < IE11
                alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
            }
            return false;
        }}
</script>

</body>
</html>
115
Nimesh

Je sais qu'il est peut-être excessif d'utiliser une bibliothèque pour cela, mais juste pour enrichir le fil, vous pouvez vérifier is.js façon de le faire:

is.firefox();
is.ie(6);
is.not.safari();
58
Rafael Eyng

Au cas où quelqu'un trouverait cela utile, j'ai transformé réponse de Rob W en une fonction qui renvoie la chaîne de navigation au lieu d'avoir plusieurs variables flottantes. Etant donné que le navigateur ne peut pas non plus réellement changer sans se charger complètement, je l’ai fait mettre le résultat en cache pour l’éviter de devoir le résoudre lors du prochain appel de la fonction.

/**
 * Gets the browser name or returns an empty string if unknown. 
 * This function also caches the result to provide for any 
 * future calls this function has.
 *
 * @returns {string}
 */
var browser = function() {
    // Return cached result if avalible, else get result then cache it.
    if (browser.prototype._cachedResult)
        return browser.prototype._cachedResult;

    // Opera 8.0+
    var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

    // Firefox 1.0+
    var isFirefox = typeof InstallTrigger !== 'undefined';

    // Safari 3.0+ "[object HTMLElementConstructor]" 
    var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);

    // Internet Explorer 6-11
    var isIE = /*@cc_on!@*/false || !!document.documentMode;

    // Edge 20+
    var isEdge = !isIE && !!window.StyleMedia;

    // Chrome 1+
    var isChrome = !!window.chrome && !!window.chrome.webstore;

    // Blink engine detection
    var isBlink = (isChrome || isOpera) && !!window.CSS;

    return browser.prototype._cachedResult =
        isOpera ? 'Opera' :
        isFirefox ? 'Firefox' :
        isSafari ? 'Safari' :
        isChrome ? 'Chrome' :
        isIE ? 'IE' :
        isEdge ? 'Edge' :
        isBlink ? 'Blink' :
        "Don't know";
};

console.log(browser());
43
willsquire

Voici plusieurs bibliothèques importantes qui gèrent la détection du navigateur à partir de mai 2019.

Bowser par lancedikson - 3 761 ★ s - Dernière mise à jour le 26 mai 2019 - 4.8KB

var result = bowser.getParser(window.navigator.userAgent);
console.log(result);
document.write("You are using " + result.parsedResult.browser.name +
               " v" + result.parsedResult.browser.version + 
               " on " + result.parsedResult.os.name);
<script src="https://unpkg.com/[email protected]/es5.js"></script>

* prend en charge Edge à base de chrome


Platform.js par bestiejs - 2 250 ★ s - Dernière mise à jour le 30 oct. 2018 - 5,9 Ko

console.log(platform);
document.write("You are using " + platform.name +
               " v" + platform.version + 
               " on " + platform.os);
<script src="https://cdnjs.cloudflare.com/ajax/libs/platform/1.3.5/platform.min.js"></script>

navigateur jQuery par gabceb - 504 ★ s - Dernière mise à jour le 23 nov. 2015 - 1.3Ko

console.log($.browser)
document.write("You are using " + $.browser.name +
               " v" + $.browser.versionNumber + 
               " on " + $.browser.platform);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.min.js"></script>

Detect.js (Archivé) par darcyclarke - 522 ★ s - Dernière mise à jour le 26 oct. 2015 - 2.9Ko

var result = detect.parse(navigator.userAgent);
console.log(result);
document.write("You are using " + result.browser.family +
               " v" + result.browser.version + 
               " on " + result.os.family);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Detect.js/2.2.2/detect.min.js"></script>

Détection de navigateur (archivée) par QuirksMode - Dernière mise à jour le 14 nov. 2013 - 884B

console.log(BrowserDetect)
document.write("You are using " + BrowserDetect.browser +
               " v" + BrowserDetect.version + 
               " on " + BrowserDetect.OS);
<script src="https://kylemit.github.io/libraries/libraries/BrowserDetect.js"></script>

Mentions notables:

  • WhichBrowser - 1 355 ★ s - Dernière mise à jour le 2 oct. 2018
  • Modernizr - 23 397 ★ s - Dernière mise à jour le 12 janv. 2019 - Pour nourrir un cheval nourri, la détection de caractéristiques doit poser toute question canIuse . La détection de navigateur sert uniquement à fournir des images personnalisées, des fichiers à télécharger ou des instructions à chaque navigateur.

Lectures complémentaires

32
KyleMit

Variante courte

var browser = (function(){
  var test = function(regexp) { return regexp.test(window.navigator.userAgent);}
  switch(true){
        case test(/Edge/i): return "Edge";
        case test(/opr/i) && (!!window.opr || !!window.opera): return "opera";
        case test(/chrome/i) && !!window.chrome: return "chrome";
        case test(/trident/i) : return "ie";
        case test(/firefox/i) : return "firefox";
        case test(/safari/i): return "safari";
        default: return "other";
  }
})();
console.log(browser)
12
Alex Nikulin

Voici une version ajustée de 2016 de la réponse de Rob, incluant Microsoft Edge et la détection de Blink:

(edit: J'ai mis à jour la réponse de Rob ci-dessus avec cette information.)

// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Firefox 1.0+
isFirefox = typeof InstallTrigger !== 'undefined';
// Safari 3.0+
isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);
// Internet Explorer 6-11
isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
isChrome = !!window.chrome && !!window.chrome.webstore;
// Blink engine detection
isBlink = (isChrome || isOpera) && !!window.CSS;

/* Results: */
console.log("isOpera", isOpera);
console.log("isFirefox", isFirefox);
console.log("isSafari", isSafari);
console.log("isIE", isIE);
console.log("isEdge", isEdge);
console.log("isChrome", isChrome);
console.log("isBlink", isBlink);

La beauté de cette approche réside dans le fait qu’elle s’appuie sur les propriétés du moteur de navigateur. Elle couvre donc même les navigateurs dérivés, tels que Yandex ou Vivaldi, qui sont pratiquement compatibles avec les principaux navigateurs dont ils utilisent les moteurs. L’exception est Opera, qui repose sur le reniflement d’agent d’utilisateur, mais aujourd’hui (version 15 et plus), même Opera n’est en soi qu’un Shell pour Blink.

11
pilau

Merci tout le monde. J'ai testé les extraits de code ici, sur les navigateurs récents: Chrome 55, Firefox 50, IE 11 et Edge 38, et j'ai trouvé la combinaison suivante qui a fonctionné pour moi pour tous. . Je suis sûr que cela peut être amélioré, mais c'est une solution rapide pour quiconque a besoin de:

var browser_name = '';
isIE = /*@cc_on!@*/false || !!document.documentMode;
isEdge = !isIE && !!window.StyleMedia;
if(navigator.userAgent.indexOf("Chrome") != -1 && !isEdge)
{
    browser_name = 'chrome';
}
else if(navigator.userAgent.indexOf("Safari") != -1 && !isEdge)
{
    browser_name = 'safari';
}
else if(navigator.userAgent.indexOf("Firefox") != -1 ) 
{
    browser_name = 'firefox';
}
else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10
{
    browser_name = 'ie';
}
else if(isEdge)
{
    browser_name = 'Edge';
}
else 
{
   browser_name = 'other-browser';
}
$('html').addClass(browser_name);

Il ajoute une classe CSS au HTML, avec le nom du navigateur.

8
dnns

Vous pouvez utiliser try et catch pour utiliser les différents messages d'erreur du navigateur. IE et Edge ont été mélangés, mais j’ai utilisé la frappe de canard de Rob W (basée sur ce projet ici: https://www.khanacademy.org/computer-programming/i-have) -opera/2395080328 ).

var getBrowser = function() {        
    try {
        var e;
        var f = e.width;
    } catch(e) {
        var err = e.toString();

        if(err.indexOf("not an object") !== -1) {
            return "safari";
        } else if(err.indexOf("Cannot read") !== -1) {
            return "chrome";
        } else if(err.indexOf("e is undefined") !== -1) {
            return "firefox";
        } else if(err.indexOf("Unable to get property 'width' of undefined or null reference") !== -1) {
            if(!(false || !!document.documentMode) && !!window.StyleMedia) {
                return "Edge";
            } else {
                return "IE";
            }
        } else if(err.indexOf("cannot convert e into object") !== -1) {
            return "opera";
        } else {
            return undefined;
        }
    }
};
7
Mason Jones

Aucune idée si cela peut être utile à quiconque mais voici une variante pour rendre TypeScript heureux.

export function getBrowser() {

// Opera 8.0+
if ((!!window["opr"] && !!["opr"]["addons"]) || !!window["opera"] || navigator.userAgent.indexOf(' OPR/') >= 0) {
    return 'opera';
}

// Firefox 1.0+
if (typeof window["InstallTrigger"] !== 'undefined') {
    return 'firefox';
}

// Safari 3.0+ "[object HTMLElementConstructor]" 
if (/constructor/i.test(window["HTMLElement"]) || (function(p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof window["safari"] !== 'undefined' && window["safari"].pushNotification))) {
    return 'safari';
}

// Internet Explorer 6-11
if (/*@cc_on!@*/false || !!document["documentMode"]) {
    return 'ie';
}

// Edge 20+
if (!(/*@cc_on!@*/false || !!document["documentMode"]) && !!window["StyleMedia"]) {
    return 'Edge';
}

// Chrome 1+
if (!!window["chrome"] && !!window["chrome"].webstore) {
    return 'chrome';
}

// Blink engine detection
if (((!!window["chrome"] && !!window["chrome"].webstore) || ((!!window["opr"] && !!["opr"]["addons"]) || !!window["opera"] || navigator.userAgent.indexOf(' OPR/') >= 0)) && !!window["CSS"]) {
    return 'blink';
}

}

6
Tony Smith

Si vous avez besoin de savoir quelle est la version numérique d'un navigateur particulier, vous pouvez utiliser l'extrait de code suivant. Actuellement, il vous indiquera la version de Chrome/Chromium/Firefox:

var match = $window.navigator.userAgent.match(/(?:Chrom(?:e|ium)|Firefox)\/([0-9]+)\./);
var ver = match ? parseInt(match[1], 10) : 0;
4
Valera Tumash

Il existe également une méthode moins "hacky" qui fonctionne pour tous les navigateurs populaires. Google a inclus une vérification du navigateur dans leur bibliothèque de fermeture . En particulier, regardez goog.userAgent et goog.userAgent.product . De cette manière, vous êtes également à jour si quelque chose change dans la présentation des navigateurs (étant donné que vous exécutez toujours la dernière version du compilateur de clôture).

4
Albert

Détection de navigateurs sur les ordinateurs de bureau et mobiles: Edge, Opera, Chrome, Safari, Firefox, IE

J'ai apporté quelques modifications dans le code @nimesh. Il fonctionne également pour Edge et le problème de Opera est résolu:

function getBrowserName() {

    if ( navigator.userAgent.indexOf("Edge") > -1 && navigator.appVersion.indexOf('Edge') > -1 ) {
        return 'Edge';
    }
    else if( navigator.userAgent.indexOf("Opera") != -1 || navigator.userAgent.indexOf('OPR') != -1 )
    {
        return 'Opera';
    }
    else if( navigator.userAgent.indexOf("Chrome") != -1 )
    {
        return 'Chrome';
    }
    else if( navigator.userAgent.indexOf("Safari") != -1)
    {
        return 'Safari';
    }
    else if( navigator.userAgent.indexOf("Firefox") != -1 ) 
    {
        return 'Firefox';
    }
    else if( ( navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true ) ) //IF IE > 10
    {
        return 'IE';
    }  
    else 
    {
        return 'unknown';
    }
}

Merci @nimesh utilisateur: 2063564

3
Irshad Khan

AParser est l'une des bibliothèques JavaScript légères pour identifier le type/modèle de navigateur, moteur, système d'exploitation, processeur et périphérique à partir de la chaîne userAgent.

Il y a un CDN disponible. Ici, j'ai inclus un exemple de code permettant de détecter un navigateur utilisant UAParser.

<!doctype html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0/dist/ua-parser.min.js"></script>
<script type="text/javascript">
    var parser = new UAParser();
    var result = parser.getResult();
    console.log(result.browser);     // {name: "Chromium", version: "15.0.874.106"}
</script>
</head>
<body>
</body>
</html>

Vous pouvez maintenant utiliser la valeur de result.browser pour programmer votre page de manière conditionnelle.

Tutoriel source: Comment détecter un navigateur, un moteur, un système d'exploitation, un processeur et un périphérique à l'aide de JavaScript?

2
Luzan Baral
var BrowserDetect = {
        init: function () {
            this.browser = this.searchString(this.dataBrowser) || "Other";
            this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown";
        },
        searchString: function (data) {
            for (var i = 0; i < data.length; i++) {
                var dataString = data[i].string;
                this.versionSearchString = data[i].subString;

                if (dataString.indexOf(data[i].subString) !== -1) {
                    return data[i].identity;
                }
            }
        },
        searchVersion: function (dataString) {
            var index = dataString.indexOf(this.versionSearchString);
            if (index === -1) {
                return;
            }

            var rv = dataString.indexOf("rv:");
            if (this.versionSearchString === "Trident" && rv !== -1) {
                return parseFloat(dataString.substring(rv + 3));
            } else {
                return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
            }
        },

        dataBrowser: [
            {string: navigator.userAgent, subString: "Edge", identity: "MS Edge"},
            {string: navigator.userAgent, subString: "MSIE", identity: "Explorer"},
            {string: navigator.userAgent, subString: "Trident", identity: "Explorer"},
            {string: navigator.userAgent, subString: "Firefox", identity: "Firefox"},
            {string: navigator.userAgent, subString: "Opera", identity: "Opera"},  
            {string: navigator.userAgent, subString: "OPR", identity: "Opera"},  

            {string: navigator.userAgent, subString: "Chrome", identity: "Chrome"}, 
            {string: navigator.userAgent, subString: "Safari", identity: "Safari"}       
        ]
    };

    BrowserDetect.init();


    var bv= BrowserDetect.browser;
    if( bv == "Chrome"){
        $("body").addClass("chrome");
    }
    else if(bv == "MS Edge"){
     $("body").addClass("Edge");
    }
    else if(bv == "Explorer"){
     $("body").addClass("ie");
    }
    else if(bv == "Firefox"){
     $("body").addClass("Firefox");
    }


$(".relative").click(function(){
$(".oc").toggle('slide', { direction: 'left', mode: 'show' }, 500);
$(".oc1").css({
   'width' : '100%',
   'margin-left' : '0px',
   });
});
1
neel upadhyay
const isChrome = /Chrome/.test(navigator.userAgent)
const isFirefox = /Firefox/.test(navigator.userAgent)
1
Landaida

This combine à la fois la réponse originale de Rob et la mise à jour de Pilau pour 2016

    var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
    // Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
var isFirefox = typeof InstallTrigger !== 'undefined';   // Firefox 1.0+
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
    // At least Safari 3+: "[object HTMLElementConstructor]"
var isChrome = !!window.chrome && !isOpera;              // Chrome 1+
var isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
var output = 'Detecting browsers by ducktyping:<hr>';
output += 'isFirefox: ' + isFirefox + '<br>';
output += 'isChrome: ' + isChrome + '<br>';
output += 'isSafari: ' + isSafari + '<br>';
output += 'isOpera: ' + isOpera + '<br>';
output += 'isIE: ' + isIE + '<br>';
output += 'isIE Edge: ' + isEdge + '<br>';
document.body.innerHTML = output;
0
Joe Borg

Ici, vous découvrez quel navigateur est en cours d'exécution.

function isValidBrowser(navigator){

            var isChrome =  navigator.indexOf('chrome'),
            isFireFox= navigator.indexOf('firefox'),
            isIE = navigator.indexOf('trident') ,
            isValidChromeVer = parseInt(navigator.substring(isChrome+7, isChrome+8)) >= 4,
            isValidFireForVer = parseInt(navigator.substring(isFireFox+8, isFireFox+9)) >= 3,
            isValidIEVer = parseInt(navigator.substring(isIE+8, isIE+9)) >= 7;

            if((isChrome > -1 && isValidChromeVer){ console.log("Chrome Browser")}

            if(isFireFox > -1 && isValidFireForVer){ console.log("FireFox  Browser")}

            if(isIE > -1 && isValidIEVer)){ console.log("IE Browser")}


        }
0
Ajay Kumar

Nous pouvons utiliser les méthodes ci-dessous

utils.isIE = function () {
        var ver = navigator.userAgent;
        return ver.indexOf("MSIE") !== -1 || ver.indexOf("Trident") !== -1; // need to check for Trident for IE11
    };

    utils.isIE32 = function () {
        return (utils.isIE() && navigator.appVersion.indexOf('Win64') === -1);
    };

    utils.isChrome = function () {
        return (window.chrome);
    };

    utils.isFF64 = function () {
        var agent = navigator.userAgent;
        return (agent.indexOf('Win64') >= 0 && agent.indexOf('Firefox') >= 0);
    };

    utils.isFirefox = function () {
        return (navigator.userAgent.toLowerCase().indexOf('firefox') > -1);
    };
0
NPE