2013-06-24 20 views
5

私のサイトの訪問者がGoogle ChromeではなくChromiumを実行しているかどうかを検出する方法はありますか?たとえ基本的なUAスニッフィング(私が知っていることは悪い習慣である)でも私の特定のケースでは十分ですが、ChromiumとChrome share the same UA stringは正しいですか?私は2つを区別することができる他の方法はありますか?クロムとクロムの具体的な検出方法を教えてください。

答えて

4

ChromeにはPDFリーダーが内蔵されていますが、Chromiumには含まれていません。
あなたはJavaScriptを使用してこれを検出することができる:

function isChrome() { // Actually, isWithChromePDFReader 
    for (var i=0; i<navigator.plugins.length; i++) 
     if (navigator.plugins[i].name == 'Chrome PDF Viewer') return true; 
    return false; 
} 

ユーザーがthis answer on Ask Ubuntuを参照してください、彼らのクロムディレクトリにChromeからPDFリーダーバイナリをコピーすることができますので、この方法では、100%信頼できるものではありません。

ChromiumとChromeの間にはほとんど違いはありません(レンダリングやJavaScriptエンジンにはありません)。なぜ違いを見つけたいのですか?ここで

+0

ありがとう!おそらく 'navigator.plugins [i] .name'を意味すると思いますか? ( 's'をシフト:p) –

+0

@AlanSzはい、ありがとうございました。 –

+0

これはChromeのデスクトップ版の場合にのみ当てはまります。 – hexalys

0

はクロムバージョン42以上の作品ポールW.の答えにバリエーションです:プラグインは、ユーザーによって無効にされていない場合はもちろんの

function isChromium() { // Actually, isWithChromiumPDFReader 
    for (var i=0; i<navigator.plugins.length; i++) 
     if (navigator.plugins[i].name == 'Chromium PDF Viewer') return true; 
    return false; 
} 

これはのみ動作します。

2

新しいChromiumバージョンにはPDFプラグインもあります。
しかし、彼らはまた、クロムのプラグインを持っているので、いずれかのプラグインは「クロム」で始まる場合、それはクロムです:

function isChromium() 
{ 

    for (var i = 0, u="Chromium", l =u.length; i < navigator.plugins.length; i++) 
    { 
     if (navigator.plugins[i].name != null && navigator.plugins[i].name.substr(0, l) === u) 
      return true; 
    } 

    return false; 
} 
関連する問題