如何使用javascript检测firefox mobile

如何使用javascript检测firefox mobile,javascript,jquery,firefox,mobile,user-agent,Javascript,Jquery,Firefox,Mobile,User Agent,我正在使用以下代码来检测我的移动站点上使用的浏览器是否与某个特定的浏览器匹配: var isiPhone = navigator.userAgent.match(/iPhone/i) != null; if (isiPhone){ alert ('iphone'); 但是,如果我试图为Firefox/Mozilla这样做,我就无法让它工作。我试过: var isFirefox = navigator.userAgent.match(/Mozilla/i != null); 及 我访问了wha

我正在使用以下代码来检测我的移动站点上使用的浏览器是否与某个特定的浏览器匹配:

var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
if (isiPhone){ alert ('iphone');
但是,如果我试图为Firefox/Mozilla这样做,我就无法让它工作。我试过:

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

我访问了whatismyuseragent.com,获得了以下信息:

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

你知道我该如何正确地检测到这一点吗?我需要编写一些特定于firefox的代码。

您可以使用
navigator.userAgent
检测浏览器,使用
navigator.platform
检测当前平台

检测Firefox:

var is_firefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
var is_android = navigator.platform.toLowerCase().indexOf("android") > -1;
if(is_firefox && is_android)
    //Do Work
检测Android:

var is_firefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
var is_android = navigator.platform.toLowerCase().indexOf("android") > -1;
if(is_firefox && is_android)
    //Do Work
要同时检测这两种情况:

var is_firefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
var is_android = navigator.platform.toLowerCase().indexOf("android") > -1;
if(is_firefox && is_android)
    //Do Work

我建议使用类似于的方法来避免浏览器检测,并将重点放在功能检测上。

Firefox的移动版是Fennec,因此只需搜索:

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

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

Rion的答案不起作用(至少不再起作用),因为navigator.platform不返回Android,而是返回Linux

我写了一个似乎有效的函数:

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

我想可能有人会需要它。

以上功能都不适用于我,特别是布里沃伊检测到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;
   }
}

OP要求检测移动版本。移动设备和非移动设备之间的区别是什么?应该在其中添加固定的平台检测。嗅探“firefox”几乎肯定是错误的。你可能想找“壁虎”。遗憾的是,由于基于WebKit的浏览器经常在UA字符串中包含该字符串,所以查找“gecko”不起作用……遗憾的是Firefox Mobile不支持触摸事件,否则您只需在窗口中执行一个简单的操作(“ontouchstart”)就可以了。现在你需要做浏览器嗅探,我们又回到了90年代:(Firefox现在返回“Linux armv7l”作为平台,而不是android,所以这不起作用。但是你可以在userAgent中检查“android”和“Firefox”,这两个都包括在内,例如:“Mozilla/5.0(android 7.0;Mobile;rv:50.0)Gecko/50.0 Firefox/50.0”根据你想做的事情,你可以考虑进行特征检测()。也可以看到这个问题:不工作…这是导航器的输出:“Mozilla/5(Android 80.0;莫比尔;RV:64)壁虎/ 64火狐/ 64”