5

ブラウザの判別に問題があります。

私は使ってみましたがnavigator、うまくいきませんでした。

以前alert(navigator.appName);はブラウザを特定していましたが、現在使用しています。Google Chromeポップアップが表示されると表示されますMozillaが、Mozilla正常に動作し、Mozillaそれ自体で動作します。

コードに問題がありますか?またはそれはいくつかのバグですか?

4

6 に答える 6

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)
于 2012-05-08T20:51:50.260 に答える
4

クロムに近いです。簡単な短い解決策が必要な場合は、これを使用してみてください。

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";
  }
}
于 2012-05-08T20:38:09.383 に答える
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

于 2012-05-08T20:29:50.247 に答える
0

ブラウザスニッフィングウィキペディア MDCは良い習慣とは見なされません。公開されていない新しいブラウザがある場合はどうなりますか?検出は、ブラウザではなく機能に対して行う必要があります。ブラウザは変更されたり、古くなったりする可能性があり、機能は永続的です。

完全性と冒険の精神のためだけに、特定のJavaScriptオブジェクトをテストする方法があります。

isChrome = function() { return !!(window.chrome);}
isOpera = function() { return !!(window.opera);}

IEの場合、条件付きコンパイルと呼ばれるこの魔法のようなものがあります。それに関する質問と資料MSDNJSkit

于 2012-05-08T23:06:25.590 に答える
0

試してみてくださいnavigator.appVersion、それはより具体的でなければなりません。

于 2012-05-08T20:29:57.190 に答える
0

これがあなたのすべての質問に答えるはずの本当に良いjsファイルへのリンクです:

http://www.quirksmode.org/js/detect.html

于 2012-05-08T20:31:43.680 に答える