ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript を使用してブラウザとバージョンを確実に検出するにはどうすればよいですか?

JavaScript を使用してブラウザとバージョンを確実に検出するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-04 17:00:15792ブラウズ

How Can I Reliably Detect Browser and Version Using JavaScript?

JavaScript でのブラウザ検出の再考

JavaScript を使用して正確なブラウザとバージョンを判断することは、カスタマイズされた Web エクスペリエンスを実現するための貴重なツールとなり得ます。これを実現する方法は次のとおりです。

Navigator API:

JavaScript 内の navigator プロパティは、ブラウザ情報へのアクセスを提供します。 userAgent プロパティには、ブラウザとそのバージョンを識別する文字列が含まれています。

正規表現の使用:

userAgent 文字列からブラウザ名とバージョンを抽出するには、次のようにします。正規表現を利用します。次のサンプル コードでは、包括的な正規表現を使用して、さまざまなブラウザーとそのバージョンを検出します。

navigator.saysWho = (() => {
  const { userAgent } = navigator;
  let match = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
  let temp;

  // Handle special cases
  if (/trident/i.test(match[1])) {
    temp = /\brv[ :]+(\d+)/g.exec(userAgent) || [];
    return `IE ${temp[1] || ''}`;
  }

  if (match[1] === 'Chrome') {
    temp = userAgent.match(/\b(OPR|Edge)\/(\d+)/);
    if (temp !== null) {
      return temp.slice(1).join(' ').replace('OPR', 'Opera');
    }

    temp = userAgent.match(/\b(Edg)\/(\d+)/);
    if (temp !== null) {
      return temp.slice(1).join(' ').replace('Edg', 'Edge (Chromium)');
    }
  }

  // Construct the browser information string
  match = match[2] ? [match[1], match[2]] : [navigator.appName, navigator.appVersion, '-?'];
  temp = userAgent.match(/version\/(\d+)/i);
  if (temp !== null) {
    match.splice(1, 1, temp[1]);
  }

  return match.join(' ');
})();

console.log(navigator.saysWho); // outputs: `Chrome 89`

このスクリプトは、ユーザー エージェント文字列をさまざまなブラウザー パターンと照合し、抽出されたブラウザーとバージョンを文字列として返します。

>

以上がJavaScript を使用してブラウザとバージョンを確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。