2010-03-22 13 views
10

Estoy tratando de usar esta línea para detectar el tipo de navegador: IE o Firefox.Usando javascript para detectar el tipo de navegador

alert(isBrowser("Microsoft")); 

pero no obtengo absolutamente nada, la alerta ni siquiera aparece. No estoy seguro de lo que estoy haciendo mal.

¿Cuál sería la mejor forma de detectar el tipo de navegador?

Respuesta

8

Prueba esto:

alert(navigator.appName); 
+0

Me gusta la simplicidad de esta respuesta. ¿Alguien tiene objeciones al respecto, porque aunque las otras respuestas son más exhaustivas (número de versión de portada, etc.) todo lo que necesito es el tipo de navegador. Pero cualquier problema conocido aquí. Por cierto, lo probé en FF y ¡dijo Netscape! – Duber

+3

Lo probé en Chrome y también dice netscape: s –

+2

Chrome, Firefox y Safari devuelven el nombre "Netscape". –

4

Creo que jQuery lo hizo bien cuando admiten testing for features en lugar de sólo el navegador.

+1

Estoy de acuerdo con la teoría, y sobre todo, funciona en la práctica también. Pero de vez en cuando necesitas saber el navegador. Por ejemplo, ¿cómo se detecta el clic derecho del ratón en webkit (safari o chrome) incluso prototype.js tiene que recurrir a la detección del navegador aquí – plodder

1

Un muy buen artículo sobre esto viene de Quirksmode: http://www.quirksmode.org/js/support.html

El guión suministrado por 'lajuette' es bueno, pero no te hace mucho más inteligente. El mismo autor explica su pensamiento detrás de la secuencia de comandos en el enlace anterior y básicamente lo que dice es:

  • Se no sobre la detección del navegador
  • Es detección sobre objeto
  • Este lleva al conocimiento de qué navegador se utiliza.
+0

Esta respuesta te ayudará independientemente de un marco de JavaScript, que creo que es el mejor punto de partida. – JeroenEijkhof

-1
function whereUWantToDetectBrowser(){ 
     if (navigator.appName == "Microsoft Internet Explorer") 
     intExp(); 
     else 
     other(); 

} 
function intExp(){ 
     //do what you want to do for specifically Internet Explorer 
} 
function other(){ 
     //do what you want to do for other browsers 
} 

este código resuelve el problema. En lugar de llamar a funciones desde whereUWantToDetectBrowser(), si escribe allí su código específico, se producirá un error. Y el código no se ejecutará Porque un navegador detecta el código que debe ejecutar (específico de cada navegador). y si está distinguiendo el código, significa que el código no está funcionando en algunos navegadores, por lo que desea escribirlo específicamente para esos navegadores. Por lo tanto, other() no tendrá efecto en IE, ya que intExp() no tiene ningún efecto en otros navegadores.

3

Para la detección MSIE es posible que el uso de JavaScript:

// This function returns Internet Explorer's major version number, 
    // or 0 for others. It works by finding the "MSIE " string and 
    // extracting the version number following the space, up to the decimal 
    // point, ignoring the minor version number 
    <SCRIPT LANGUAGE="JavaSCRIPT"> 
    function msieversion() 
    { 
     var ua = window.navigator.userAgent 
     var msie = ua.indexOf ("MSIE ") 

     if (msie > 0)  // If Internet Explorer, return version number 
     return parseInt (ua.substring (msie+5, ua.indexOf (".", msie))) 
     else     // If another browser, return 0 
     return 0 

    } 
    </SCRIPT> 

A continuación se muestra un ejemplo de cómo llamar a cualquier lugar de su html:

<SCRIPT LANGUAGE="javascript"> 
    if (msieversion() >= 0) 

     document.write ("This is Internet Explorer"); 

    else 

     document.write ("This is another browser"); 

    </SCRIPT> 

http://support.microsoft.com/kb/167820 http://support.microsoft.com/kb/167820

+0

Es mejor si brinda una respuesta real con código aquí y proporcione el enlace como respaldo desde donde obtuvo esa información. – Anthon

+2

He corregido mi respuesta. –

+1

"msieversion()> = 0" debería leer "msieversion> 0." De lo contrario, todos los navegadores responderán "Esto es Internet Explorer". – flyingace

-2

El mejor y La forma más corta de encontrar el tipo de navegador para IE es ...U puede hacer lo mismo para otros tipos de navegadores

if (navigator.appName == "Microsoft Internet Explorer"){ 

// Ur piece of validation 

} 
+0

funcionará solo para IE 10 y versiones anteriores. Compruébelo [aquí.] (Http://www.w3schools.com/jsref/prop_nav_appname.asp) –

Cuestiones relacionadas