2011-08-13 1 views
11

イムJavaScriptコードを開発し、私はクライアントのブラウザのバージョンやブランドを決定したい、ここで私がそうすることを使用しているコードの一部です:私は「グーグルを使って自分のコードを実行するときなぜgoogle chrome borwserで試してみると、javaScriptの "navigator.userAgent"は "Mozilla"という文字列を返しますか?

var browserName ; 
function BrowserCheckin() 
{ 

    if(navigator.userAgent.indexOf("Mozilla") > 0) 
     browserName = "Mozilla" ; 
    if (navigator.userAgent.indexOf("MSIE") > 0) 
     browserName = "InternetExplorer"; 
    if (navigator.userAgent.indexOf("Chrome") > 0) 
     browserName= "Google Chrome" ; 
    if(navigator.userAgent.indexOf("Opera") > 0) 
     browserName = "Opera" ; 
    document.write("<h1>" + browserName + "</h1>") ; 
} 

が、クロム」、useAgentプロパティが文字列containtingを返す:

の "Mozilla/5.0(X11;のLinux x86_64で)のAppleWebKit/534.30( ヤモリ様KHTML)クロム/ 12.0.742.112サファリ/ 534.30"

しかし、私は "Mozilla/5.0"がそこで何をしているのか分かりません。
(そしてもう一つ、私は私のオペレーティングシステムとしてLinuxを使用)事前に

感謝:)

+5

機能を有効/無効にしたい場合は、ブラウザの検出ではなく、機能の検出を調べる必要があります。 –

+0

@Damien_The_Unbeliever:私はそれを見ています。あなたが正しいと思うでしょう。答えがあれば、私は最高の答えとしてそれを選んだでしょう:) thanks –

答えて

19

historical reasonsについては、(オペラを除く)のほぼすべてのブラウザでは、ユーザーエージェントにMozilla/を付加。

は、例えば、ここではいくつかの一般的なユーザーエージェントです:詳細なリストについては

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) 
      Chrome/12.0.742.112 Safari/534.30     # Chrome 12 
Mozilla/5.0 (X11; Linux x86_64) Gecko Firefox/5.0    # FF 5 
Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)  # IE 9 
Opera/9.80 (Windows NT 5.1; U; en) Presto/2.8.119 Version/11.10 # Opera 11.10 

onlinedatabasesを参照してください。

+0

ありがとう、とても速いですが、OperaとIEの場合はそうではありません。彼らはuserAgentに 'Mozilla /'を持っていません。 –

+1

はい、それはあります。 –

+0

@Delan Azabani:これはOperaのものです:Opera/9.80(X11; Linux x86_64; U; en)Presto/2.9.168 Version/11.50 –

2

これはです。はChromeのユーザーエージェント文字列です。歴史的な理由から、Mozillaはその名の通りです。

このリンクにはUA文字列がありますが、それは役に立つかもしれません:http://www.useragentstring.com/pages/Chrome/

関連する問題