2012-04-21 14 views
16

¿Alguien tiene un script para verificar navegadores antiguos? Se tendría que seguir este criterio:Javascript check browser

  1. Permitir Firefox 3.6 o hasta

  2. Permitir Google Chrome 15 y hasta

  3. Permitir Safari 5 o hasta

  4. Bloquear IE y Opera

  5. Bloquear todos los demás navegadores

+6

Usted debe preferir la detección de características sobre la detección del navegador. Ver, por ejemplo, [Modernirz] (http://modernizr.com/). – Sirko

+0

Secundar Sirko para la detección de características. Si desea incluir nombres y números de versión, solo debe ofrecer sugerencias si/cuando detecta que el navegador del usuario carece de la función que necesita. – searlea

+5

bloque IE y Opera? OMG –

Respuesta

35

Puede utilizar navigator objeto para esto y en que se puede utilizar userAgent propiedad como

if (navigator.userAgent.indexOf('Firefox') != -1 && parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf('Firefox') + 8)) >= 3.6){//Firefox 
//Allow 
}else if (navigator.userAgent.indexOf('Chrome') != -1 && parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf('Chrome') + 7).split(' ')[0]) >= 15){//Chrome 
//Allow 
}else if(navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Version') != -1 && parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf('Version') + 8).split(' ')[0]) >= 5){//Safari 
//Allow 
}else{ 
// Block 
} 
+1

Gracias, eso es genial –

+0

@JackRenshaw .. y es completamente inútil, ya que los navegadores se pueden enmascarar como cualquier otro e incluso se puede desactivar javascript. –

1

Estoy de acuerdo con @Sirko. Preferiblemente, debería usar la función de detección en su lugar. Una alternativa a Modernizr sería la función $.support() de jQuery. No es exactamente lo mismo, pero puede adaptarse a sus necesidades.

Si insistes en la detección del navegador, puedes escribir tu propia secuencia de comandos usando la función $.browser() de jQuery.

+0

El problema con eso es que algunos navegadores supuestamente modernos, como la última versión de IE y opera, no permiten que JS se ofusque con bloques HTML. –

+1

¿Qué? ¿Podrías por favor elaborar? –

+4

Solo un comentario aquí, $ .browser ha sido eliminado de jQuery 1.9.0 –