ブラウザの判別に問題があります。
私は使ってみましたが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)
クロムに近いです。簡単な短い解決策が必要な場合は、これを使用してみてください。
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
ここではいくつかの例を示します。
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
ブラウザスニッフィングウィキペディア MDCは良い習慣とは見なされません。公開されていない新しいブラウザがある場合はどうなりますか?検出は、ブラウザではなく機能に対して行う必要があります。ブラウザは変更されたり、古くなったりする可能性があり、機能は永続的です。
完全性と冒険の精神のためだけに、特定のJavaScriptオブジェクトをテストする方法があります。
isChrome = function() { return !!(window.chrome);}
isOpera = function() { return !!(window.opera);}
試してみてくださいnavigator.appVersion
、それはより具体的でなければなりません。
これがあなたのすべての質問に答えるはずの本当に良いjsファイルへのリンクです: