как обнаружить Firefox Mobile с помощью JavaScript - PullRequest
8 голосов
/ 30 августа 2011

Я использую следующий код, чтобы определить, соответствует ли браузер, используемый на моем мобильном сайте, определенному критерию:

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

, но если я попытаюсь сделать это для Firefox / Mozilla, я смогу 'заставить его работать.Я пробовал:

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

и

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

Я посетил whatismyuseragent.com и получил следующее:

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

Любая идея, как правильно это обнаружить?Мне нужно написать какой-нибудь специфичный для Firefox код.

Ответы [ 5 ]

18 голосов
/ 30 августа 2011

Вы можете использовать navigator.userAgent для обнаружения браузера и navigator.platform для обнаружения текущей платформы.

Для обнаружения Firefox:

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

для обнаружения Android:

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

для обнаружения обоих:

if(is_firefox && is_android)
    //Do Work

Я бы порекомендовал использовать что-то вроде modernizr, чтобы избежать обнаружения браузером и сосредоточиться на обнаружении функций.

2 голосов
/ 11 ноября 2011

Мобильная версия Firefox - Fennec, поэтому просто поищите:

var is_Firefox = navigator.userAgent.toLowerCase().indexOf('fennec') > -1;
1 голос
/ 21 декабря 2012

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

0 голосов
/ 04 декабря 2014

Ни одна из вышеперечисленных функций не работала для меня, в частности, buriwoy обнаруживал либо android, либо firefox, эта версия его функции работает:

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;
   }
}
0 голосов
/ 11 сентября 2014

Ответ Рион не работает (по крайней мере, больше), потому что navigator.platform не возвращает Android, он возвращает Linux.

Я написал функцию, которая работает:

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

Подумал, может это кому-нибудь понадобится.

...