我有这段代码可以成功检测到Mozilla Firefox:
function isFFold() {
return (
(navigator.userAgent.toLowerCase().indexOf("firefox") >= 0)
);
}
如何更改代码以便获得特定版本?我到处寻找,但我找到的唯一方法是使用已弃用的浏览器功能。
答案 0 :(得分:2)
我总是使用此代码来检查用户代理及其版本:
navigator.sayWho= (function(){
var ua= navigator.userAgent, tem,
M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if(/trident/i.test(M[1])){
tem= /\brv[ :]+(\d+)/g.exec(ua) || [];
navigator.isIE = true;
return 'IE '+(tem[1] || '');
}
navigator.isIE = false;
if(M[1]=== 'Chrome'){
tem= ua.match(/\bOPR\/(\d+)/)
if(tem!= null) return 'Opera '+tem[1];
}
M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
return M.join(' ');
})();
它会告诉您任何用户代理的名称和版本。不幸的是,我不再知道此代码的原始来源了。
请注意,此代码也可以在没有jQuery的情况下运行。
但是,您应该尝试避免使用此类代码并使用功能检测。
答案 1 :(得分:2)
由于您只想知道Mozilla Firefox的版本,您也可以使用此功能:
function getFFversion(){
var ua= navigator.userAgent, tem;
var match = ua.match(/firefox\/?\s*(\d+)/i);
if(!match){ //not firefox
return null;
}
if((tem= ua.match(/version\/(\d+)/i)) != null) {
return parseInt(tem[1]);
}
return parseInt(match[1]);
}
它将以整数形式返回版本。如果浏览器不是Mozilla Firefox,则会返回null
。
您的测试功能如下:
void isFFold(minVer){
var version = getFFversion();
return ( version!==null && version < minVer );
}
(对于非firefox浏览器,它将返回false)