JavaScript の navigator.userAgent がブラウザ情報を取得するケースの説明

JavaScript の navigator.userAgent がブラウザ情報を取得するケースの説明

ブラウザはおそらく私たちにとって最も馴染みのあるツールです。 Firefox、Opera、Safari、IE、Chrome といったよく知られたブラウザに加え、世界には 100 種類近くのブラウザがあると言われています。通常、開発を行う際には、さまざまなブラウザに対応する必要があるため、ブラウザの種類やシステムの判断を精緻化することが重要です。

まず、User-Agent とは何かを見てみましょう。 User-Agent は HTTP リクエスト内のユーザー識別子であり、通常はブラウザの種類、オペレーティング システムなどのクライアントの種類を表す文字列やその他の情報を送信します。 User-Agent の合意された形式は、アプリケーション名、スラッシュ、バージョン番号の順で、残りは自由形式です。

ここではいくつかのブラウザのみ紹介します

クロム

iPhone用Safari

IE

次に、閲覧タイプとシステムを取得する関数をカプセル化し、必要な場所で呼び出します。

// すべての主要ブラウザ関数 getBrowser() {
    var u = navigator.userAgent;
 
    var bws = [{
        名前: 'sgssapp',
        it: /sogousearch/i.test(u)
    }, {
        名前: 'wechat',
        it: /MicroMessenger/i.test(u)
    }, {
        名前: 'weibo'、
        it: !!u.match(/Weibo/i)
    }, {
        名前: 'uc',
        !!u.match(/UCBrowser/i) || u.indexOf('UBrowser') > -1
    }, {
        名前: 'ソゴウ',
        u.indexOf('MetaSr') > -1 || u.indexOf('Sogou') > -1
    }, {
        名前: 'xiaomi',
        u.indexOf('MiuiBrowser') > -1 です
    }, {
        名前: '百度',
        u.indexOf('Baidu') > -1 || u.indexOf('BIDUBrowser') > -1
    }, {
        名前: '360',
        u.indexOf('360EE') > -1 || u.indexOf('360SE') > -1
    }, {
        名前: '2345',
        u.indexOf('2345Explorer') > -1 です
    }, {
        名前: 'エッジ'、
        u.indexOf('Edge') > -1 です
    }, {
        名前: 'ie11',
        u.indexOf('Trident') > -1 && u.indexOf('rv:11.0') > -1 です
    }, {
        名前: 'ie',
        u.indexOf('compatible') > -1 && u.indexOf('MSIE') > -1 です
    }, {
        名前: 'firefox',
        u.indexOf('Firefox') > -1 です
    }, {
        名前:「サファリ」
        u.indexOf('Safari') > -1 && u.indexOf('Chrome') === -1 です
    }, {
        名前: 'qqbrowser',
        u.indexOf('MQQBrowser') > -1 && u.indexOf(' QQ') === -1
    }, {
        名前: 'qq',
        u.indexOf('QQ') > -1 です
    }, {
        名前: 'クロム'、
        u.indexOf('Chrome') > -1 || u.indexOf('CriOS') > -1
    }, {
        名前: 'オペラ',
        u.indexOf('Opera') > -1 || u.indexOf('OPR') > -1
    }];
 
    (var i = 0; i < bws.length; i++) の場合 {
        (bws[i].it)の場合{
            bws[i].nameを返します。
        }
    }
 
    'other' を返します。
}
 
// システム微分関数 getOS() {
    var u = navigator.userAgent;
    if (!!u.match(/compatible/i) || u.match(/Windows/i)) {
        'windows' を返します。
    } そうでない場合 (!!u.match(/Macintosh/i) || u.match(/MacIntel/i)) {
        'macOS' を返します。
    } そうでない場合 (!!u.match(/iphone/i) || u.match(/Ipad/i)) {
        'ios' を返します。
    } そうでない場合 (!!u.match(/android/i)) {
        'android' を返します。
    } それ以外 {
        'other' を返します。
    }
}

これで、JavaScript navigator.userAgent によるブラウザ情報取得の事例紹介は終了です。JavaScript navigator.userAgent によるブラウザ情報取得に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript BOMの構成と一般的なイベントの詳細な説明
  • JavaScript における BOM と DOM の詳細な説明
  • JavaScript 履歴オブジェクトの説明
  • JavaScript 履歴オブジェクトの原理分析
  • JSロケーションを使用して検索ボックスの履歴機能を実装する
  • JavaScript BOM ロケーション オブジェクト + ナビゲーター オブジェクト + 履歴オブジェクト

<<:  MySQL ビューの一貫性を確保する方法の詳細な説明 (チェック オプション付き)

>>:  nginx-ingress-controller ログ永続化ソリューションのソリューション

推薦する

Nginx シグナル制御

Nginx の紹介Nginx は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...

HTML の rel 属性の分析

.y { background: url(//img.jbzj.com/images/o_y.pn...

Linux gzip コマンドのファイル圧縮実装原理とコード例

gzip は、Linux システムでファイルの圧縮と解凍によく使用されるコマンドです。このコマンドで...

VMWare 仮想マシン 15.X LAN ネットワーク構成チュートリアル図

最近、分散型およびビッグデータ技術について学ぶために、いくつかの仮想マシンに取り組んでいます。まず、...

MySQLビューの原理と使用法の詳細な説明

この記事では、例を使用して MySQL ビューの原理と使用方法を説明します。ご参考までに、詳細は以下...

ウェブサイトのコードブロックのpreタグにコピーコードボタンコードを追加します

他のよりプロフェッショナルなブログ システムを参照すると、コード ブロックにコードのコピー ボタンが...

MySQL の効率的なクエリの左結合とグループ化 (プラス インデックス)

mysql 効率的なクエリMySQL は、左結合の速度を上げるために group by を犠牲にし...

JS ES6コーディング標準の詳細な説明

目次1. ブロックスコープ1.1. let は var を置き換える1.2. グローバル定数とスレッ...

Docker 学習: コンテナ コンテナの具体的な使用方法

コンテナは Docker のもう一つの中心的な概念です。簡単に言えば、コンテナとは、独立して実行され...

Node.js はクライアントリクエストデータ内の中国語文字化けの問題を解決します

Node.js はクライアントリクエストデータ内の中国語文字化けの問題を解決しますコード例: var...

Docker クロスホストネットワークの実装 (手動)

1. Macvlan の紹介Macvlan が登場する前は、イーサネット カードに複数の IP ア...

MySQL 5.7.17 zip パッケージ バージョンを Windows 10 にインストールするチュートリアル

mysql5.7.17のインストールチュートリアルを参考までに共有します。具体的な内容は次のとおりで...

mysql 行列変換サンプルコード

1. 需要3 つのテーブルがあります。一定期間にわたるさまざまな抗生物質感受性の結果、つまり rep...

Vue コード強調プラグインの総合的な比較と評価

目次総合的な比較アクティブの観点から機能的な観点から詳細な比較1. エース2. コードミラー3. モ...

MySQLインデックスを追加する3つの原則を簡単に理解する

1. インデックスの重要性インデックスは、列に特定の値を持つ行をすばやく見つけるために使用されます。...