我在确定浏览器时遇到问题。
我尝试使用navigator
,但是没有用。
我使用alert(navigator.appName);
来确定浏览器,我当前正在使用Google Chrome
,当弹出窗口显示Mozilla
时,但在Mozilla
它可以正常使用Mozilla
自我。
代码有问题吗?或者是一些错误?
答案 0 :(得分:7)
navigator.sayswho= (function(){
var N= navigator.appName, ua= navigator.userAgent, tem,
M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*([\d\.]+)/i);
if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
M= M? [M[1], M[2]]:[N, navigator.appVersion, '-?'];
return M.join(' ');
})();
alert(navigator.sayswho)
答案 1 :(得分:3)
它接近于chrome,如果您需要一个简单的简短解决方案,请尝试使用它:
function getBrowser() {
if( navigator.userAgent.indexOf("Chrome") != -1 ) {
return "Chrome";
} else if( navigator.userAgent.indexOf("Opera") != -1 ) {
return "Opera";
} else if( navigator.userAgent.indexOf("MSIE") != -1 ) {
return "IE";
} else if( navigator.userAgent.indexOf("Firefox") != -1 ) {
return "Firefox";
} else {
return "unknown";
}
}
答案 2 :(得分:2)
回答你的问题,没有问题或错误。 Chrome将自己定位为Mozilla。有关Chrome提供的确切用户代理字符串,请参阅此处。
http://www.useragentstring.com/pages/useragentstring.php?name=Chrome
以下是一些例子:
Chrome 20.0.1092.0
Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 536.6(KHTML,与Gecko一样)Chrome / 20.0.1092.0 Safari / 536.6
Chrome 20.0.1090.0
Mozilla / 5.0(Windows NT 6.2)AppleWebKit / 536.6(KHTML,与Gecko一样)Chrome / 20.0.1090.0 Safari / 536.6
答案 3 :(得分:0)
尝试navigator.appVersion
,它应该更具体。
答案 4 :(得分:0)
这是一个非常好的js文件的链接,可以回答你的所有问题:
答案 5 :(得分:0)
浏览器嗅探wikipedia MDC并不是一种好习惯。如果有新的浏览器,而不是公开可用,该怎么办?检测应该是针对功能而不是浏览器。浏览器可能会发生变化,过时,功能也会持续存在。
只是为了完整性和冒险精神 - 有一种方法可以测试特定的JavaScript对象:
isChrome = function() { return !!(window.chrome);}
isOpera = function() { return !!(window.opera);}
对于IE,有一个神奇的东西叫做条件编译SO Question和关于它的材料MSDN JSkit。