570 votos

Cómo detectar Safari, Chrome, IE, Firefox y Opera navegador?

Tengo 5 addons / extensiones de FF, Chrome, IE, Opera y Safari.

Necesito el código de reconocer el navegador del usuario y redirigir (al hacer clic en un botón de instalación) para descargar el complemento correspondiente.

¿Puede usted ayudar por favor?

1294voto

Rob W Puntos 125904

Buscar en google para el navegador de detección fiable a menudo resulta en la comprobación de la cadena de agente de Usuario. Este método es no confiable, porque es trivial parodia de este valor.
He escrito un método para detectar navegadores por pato-escribir.

Sólo utilice el navegador método de detección de si es realmente necesario, tal como se muestra en el navegador instrucciones específicas para instalar una extensión. La función de detección cuando sea posible.

Demostración: 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

Análisis de fiabilidad

El método anterior dependía de las propiedades del motor de renderizado (-moz-box-sizing y -webkit-transform) para detectar el navegador. Estos prefijos se finalmente se cayó, así que para hacer la detección aún más robusta, me cambié a browser-características específicas:

  • Internet Explorer: JScript la compilación Condicional y document.documentMode.
  • Firefox: Firefox API para instalar add-ons: InstallTrigger
  • Chrome: El global chrome objeto, que contiene varias propiedades, incluyendo un documentado chrome.webstore objeto.
  • Safari: Un único patrón de nomenclatura en su nomenclatura de los constructores. Esta es la menos duradera método de todas las características mencionadas, porque es indocumentada. Por otro lado, no hay ningún beneficio en cambiar el nombre del constructor, por lo que es probable que se mantenga por un largo tiempo.
  • Ópera: window.opera ha existido por años, pero se cayó cuando Ópera sustituye a su motor con Blink + V8 (utilizado por el Cromo).
    Actualización: la Ópera de 15 ha sido liberado, su UA cadena se parece a Chrome, con la adición de "OPR". En esta versión los chrome objeto es definido (pero chrome.webstore que no). Desde la Ópera se esfuerza clon de Chrome, uso de agente de usuario de esnifar para este propósito.

Probado con éxito en:

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

90voto

Nimesh Puntos 91

Usted puede intentar siguiente forma de comprobar la versión del explorador.

     <!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>
 

Y si lo que necesita saber única versión del explorador IE entonces usted puede seguir por debajo del código. Este código funciona bien para la versión IE6 a EI11

 <!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>
 

-1voto

Nirav Mehta Puntos 415

Una sola línea de código javascript simple le dará el nombre de navegador:

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

-2voto

Salman Jaleel Puntos 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>

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X