2011-08-30 14 views
8

estoy usando el siguiente código para detectar si el navegador está usando en mi sitio móvil coincide con una cierta crieteria:cómo detectar Firefox Mobile con javascript

var isiPhone = navigator.userAgent.match(/iPhone/i) != null; 
if (isiPhone){ alert ('iphone'); 

pero si intento hacer esto para Firefox/Mozilla, no puedo hacer que funcione. He intentado:

var isFirefox = navigator.userAgent.match(/Mozilla/i != null); 

y

var isFirefox = navigator.userAgent.match(/Firefox/i != null); 

visité whatismyuseragent.com y obtuve el siguiente:

Mozilla/5.0 (Android;Linux armv7l; rv6.0) Gecko/20110811 Gecko Firefox/6.0 Fennec/6.0 

alguna idea de cómo detectar este adecuadamente? Necesito escribir algún código específico de Firefox.

+1

Dependiendo de lo que estamos tratando de hacer, usted podría considerar hacer detección de características en su lugar (http://ejohn.org/blog/future-proofing-javascript-libraries/). También vea esta otra pregunta en SO: http://stackoverflow.com/questions/1294586/browser-detection-versus-feature-detection – mbillard

Respuesta

17

Puede usar el navigator.userAgent para detectar el navegador y navigator.platform para detectar la plataforma actual.

para detectar Firefox:

var is_firefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1; 

para detectar Android:

var is_android = navigator.platform.toLowerCase().indexOf("android") > -1; 

para detectar tanto:

if(is_firefox && is_android) 
    //Do Work 

Recomendaría usar algo como modernizr para evitar la detección del navegador y centrarse en la detección de características.

+0

OP solicita detectar la versión móvil. ¿Cómo diferirá esto entre móvil y no móvil? – JaredPar

+0

Debería ser fijo; también se agregó detección de plataforma allí. –

+0

Oler a "firefox" es casi seguro que es algo incorrecto. Probablemente quieras buscar "gecko /" en su lugar.Lamentablemente, en busca de "gecko" no funciona debido a los navegadores basados ​​en WebKit incluyendo a menudo esa cadena en la cadena de UA ... –

2

La versión móvil de Firefox es Fennec, por lo que sólo la búsqueda de:

var is_Firefox = navigator.userAgent.toLowerCase().indexOf('fennec') > -1; 
1

var isFirefox = /Android.+Firefox\//.test(navigator.userAgent);

-1

respuesta de Rion no funciona (al menos ya no), porque navigator.platform no vuelve Android, devuelve Linux.

escribí una función que parece funcionar:

Pensamiento
function detectAndroidFirefox() { 
    var agent = navigator.userAgent.toLowerCase(); 
    return (agent.indexOf('firefox') + agent.indexOf("android")) >= 0; 
} 

tal vez alguien va a necesitar esto.

0

Ninguna de las funciones anteriores estaban trabajando para mí, específicamente buriwoy era detectar ya sea Android o Firefox, la versión de su función funciona:

function detectAndroidFirefox() { 
    var agent = navigator.userAgent.toLowerCase(); 
    if(agent.indexOf('firefox') >= 0){ 
    if(agent.indexOf("android") >= 0){ 
     return true;  
    } else{ 
     return false; 
    } 
    } else{ 
    return false; 
    } 
} 
Cuestiones relacionadas