我正在使用以下代码来检测我的移动网站上使用的浏览器是否与某个网站相匹配:
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特定的代码。
答案 0 :(得分:18)
您可以使用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 之类的内容来避免浏览器检测,并专注于功能检测。
答案 1 :(得分:2)
Firefox的移动版本是Fennec,所以只需搜索:
var is_Firefox = navigator.userAgent.toLowerCase().indexOf('fennec') > -1;
答案 2 :(得分:1)
var isFirefox = /Android.+Firefox\//.test(navigator.userAgent);
答案 3 :(得分:0)
以上所有功能都不适用于我,特别是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;
}
}
答案 4 :(得分:-1)
Rion的回答不起作用(至少不再有),因为navigator.platform没有返回Android,它返回Linux。
我写了一个似乎有用的功能:
function detectAndroidFirefox () {
var agent = navigator.userAgent.toLowerCase();
return (agent.indexOf('firefox') + agent.indexOf("android")) >= 0;
}
想到也许有人需要这个。