как обнаружить firefox mobile с помощью javascript

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

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 ответов


можно использовать 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 чтобы избежать обнаружения браузера и сосредоточиться на обнаружение объекта.


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

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

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


ни одна из вышеперечисленных функций не работала для меня, в частности, Буривой обнаруживал 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;
   }
}

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

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

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

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