1069 votes

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

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

J'ai besoin du code de reconnaître le navigateur de l'utilisateur et le rediriger (cliquez dans le bouton installer pour télécharger le correspondant de l'addon.

Pouvez-vous s'il vous plaît aider?

1999voto

Rob W Points 125904

Une recherche sur google pour le navigateur fiable de détection souvent les résultats de la vérification de la chaîne de l'agent Utilisateur. Cette méthode n'est pas fiable, car il est trivial d'usurper l'identité de cette valeur.
J'ai écrit une méthode pour détecter les navigateurs en tapant duck.

Utilisez uniquement le navigateur méthode de détection si c'est vraiment nécessaire, comme le montre instructions spécifiques à chaque navigateur d'installer une extension. Utilisez la fonctionnalité de détection lorsque cela est possible.

Démo: http://jsfiddle.net/9zxvE/383/

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; // At least IE6

L'analyse de la fiabilité

La méthode précédente dépendait propriétés du moteur de rendu (-moz-box-sizing et -webkit-transform) pour détecter le navigateur. Ces préfixes finira par être abandonné, de sorte à faire de la détection encore plus robuste, j'ai changé de navigateur des caractéristiques spécifiques:

  • Internet Explorer: JScript la compilation Conditionnelle et document.documentMode.
  • Firefox: Firefox API pour installer des add-ons: InstallTrigger
  • Chrome: Le global chrome l'objet, contenant plusieurs propriétés, y compris une documenté chrome.webstore objet.
  • Safari: Un unique modèle de nommage dans sa dénomination de constructeurs. C'est la moins durable de la méthode de la liste de toutes les propriétés, parce qu'il est sans papiers. D'autre part, il n'y a aucun avantage à renommer le constructeur, il est donc susceptible de rester pour un long moment.
  • Opéra: window.opera a existé pendant des années, mais sera supprimée lors de l'Opéra remplace son moteur avec Blink + V8 (utilisé par Chrome).
    Mise à jour: Opera 15 a été libéré, sa chaîne de l'agent utilisateur ressemble à Chrome, peu avec l'ajout de "RPT". Dans cette version, l' chrome objet est défini (mais chrome.webstore n'est pas). Depuis l'Opéra s'efforce de clone de google Chrome, j'utilise de l'utilisateur de l'agent sniffing à cette fin.

Testé avec succès dans l':

  • Firefox 0.8 - 25
  • Chrome 1.0 - 30
  • Opera 8.0 - 15.0
  • Safari 3.0 - 6.0
  • IE 6 - 11

197voto

Nimesh Points 91

Vous pouvez essayer la façon suivante pour vérifier la version de votre 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("Chrome") != -1 ) 
    {`enter code here`
        alert('Chrome');
    }
    else if(navigator.userAgent.indexOf("Opera") != -1 )
    {
     alert('Opera');
    }
    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 savoir qu'avec IE version du Navigateur, alors vous pouvez suivre ci-dessous de code. Ce code fonctionne bien pour la version 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>

-2voto

Salman Jaleel Points 1
<html>
<script>
if(navigator.userAgent.indexOf("Firefox") != -1)
{
   window.location = "http://www.i-code.co.uk";
}
else if(navigator.userAgent.indexOf("MSIE") != -1)
{
   window.location = "http://www.i-code.co.uk";
}
else if(navigator.userAgent.indexOf("Netscape") != -1)
{
   window.location = "http://www.i-code.co.uk";
}
else
{
   window.location = "http://www.i-code.co.uk";
}
</script>
</html>

-3voto

Nirav Mehta Points 415

Simple à une seule ligne de code javascript va vous donner le nom du navigateur:

function GetBrowser()
{
    return  navigator ? navigator.userAgent.toLowerCase() : "other";
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X