我在确定浏览器时遇到问题。
我试过使用navigator
,很好,它没有帮助。
我曾经alert(navigator.appName);
确定浏览器和我当前正在使用的浏览器Google Chrome
,当弹出窗口出现时它显示出来Mozilla
,但Mozilla
它工作正常并且Mozilla
它自己。
代码有问题吗?或者它是一些错误?
我在确定浏览器时遇到问题。
我试过使用navigator
,很好,它没有帮助。
我曾经alert(navigator.appName);
确定浏览器和我当前正在使用的浏览器Google Chrome
,当弹出窗口出现时它显示出来Mozilla
,但Mozilla
它工作正常并且Mozilla
它自己。
代码有问题吗?或者它是一些错误?
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)
它接近 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";
}
}
要回答您的问题,不,没有问题或错误。Chrome 将自己称为 Mozilla。有关 Chrome 提供的确切用户代理字符串,请参阅此内容。
http://www.useragentstring.com/pages/useragentstring.php?name=Chrome
这里有些例子:
铬 20.0.1092.0
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6
铬 20.0.1090.0
Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6
试试看navigator.appVersion
,应该更具体。
这是一个非常好的 js 文件的链接,它应该回答你所有的问题:
浏览器嗅探维基百科 MDC不是一个好的做法。如果有新的浏览器,但不公开怎么办?检测应该针对功能而不是浏览器。浏览器可能会改变,变得过时,功能是持久的。
只是为了完整性和冒险精神 - 有一种方法可以测试特定的 JavaScript 对象:
isChrome = function() { return !!(window.chrome);}
isOpera = function() { return !!(window.opera);}
对于 IE,有一个神奇的东西叫做条件编译SO Question和关于它的材料MSDN JSkit。