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