如何使用javascript检测Firefox手机?
我使用以下代码来检测我的移动网站上使用的浏览器是否符合特定条件:
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 特定的代码。
I'm using the following code to detect whether the browser being used on my mobile site matches a certain crieteria:
var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
if (isiPhone){ alert ('iphone');
but if I attempt to do this for Firefox / Mozilla, I can't get it to work. I've tried:
var isFirefox = navigator.userAgent.match(/Mozilla/i != null);
and
var isFirefox = navigator.userAgent.match(/Firefox/i != null);
I visited whatismyuseragent.com and got the following:
Mozilla/5.0 (Android;Linux armv7l; rv6.0) Gecko/20110811 Gecko Firefox/6.0 Fennec/6.0
Any idea how I properly detect this? I need to write some firefox specific code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(7)
上述功能对我来说都不起作用,特别是 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;
}
}
这可以简单明了地检测 Android 上的 Firefox:
isFxAndroid = /^Linux a/.test(navigator.oscpu);
或者使用 startsWith
进行更现代的操作:
isFxAndroid = navigator.oscpu.startsWith("Linux a");
它是如何工作的:if (navigator.oscpu) { /* I'm Firefox */ }
是众所周知的检测 Mozilla 浏览器(Firefox)的方法,其他浏览器返回 undefined
.
根据 HTML 规范,Gecko 浏览器 (Firefox) 必须返回 navigator.oscpu
的字符串:
如果导航器兼容模式是 Gecko,则用户代理还必须支持以下部分接口
https://html.spec.whatwg.org/multipage/system-state.html#concept-navigator-compatibility-mode
Android 上的 Firefox 返回 navigator.oscpu
内容例如 Linux armv71
或 Linux aarch64
。
Linux 桌面上的 Firefox 始终返回 Linux x86_64
;该字符串被冻结多年(无论实际的 CPU 是多少)。
因此,您不会得到带有建议查询的桌面 Firefox。
您可以在此处测试浏览器对 navigator.oscpu
的返回值:
http ://jeka.info/test/navigator.html
您可以使用 navigator.userAgent
检测浏览器,使用 navigator.platform
检测当前平台。
检测 Firefox:
let is_firefox = navigator.userAgent.toLowerCase().includes('firefox');
检测 Android:
let is_android = navigator.platform.toLowerCase().includes("android");
检测两者:
if(is_firefox && is_android)
//Do Work
我建议使用类似 modernizr 以避免浏览器检测并专注于功能检测。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Firefox 的移动版本是 Fennec,因此只需搜索它即可:
The mobile version of Firefox is Fennec, so just search for that: