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 ログ永続化ソリューションのソリューション

推薦する

tomcat8の最新のLinuxインストールプロセス

ダウンロード参考:ダウンロードするコアパッケージを選択してくださいダウンロード後、ファイルをサーバー...

Ubuntu 18.04 向け VMware Tools のインストールと構成のチュートリアル

この記事では、Ubuntu 18.04でのVMware Toolsのインストールと設定について記録し...

ウェブサイトデザインにおいて非常に重要な概念であるdiv+floatの分析

ウェブサイトの構築では、HTML と CSS に関するさまざまな問題に常に遭遇します。ウェブサイト ...

Reactソースコードにおけるビット演算について詳しく説明します

目次序文いくつかの一般的なビット操作ビットAND (&)ビットOR (|)ビット否定(~)マ...

Tomcat9 のダウンロード、インストール、設定 + Eclipse への統合に関する詳細なチュートリアル

トムキャット公式サイトtomcatはローカルサーバーと同等であり、Webページを開くことができます設...

Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

ステップ1: システムのアーキテクチャを確認する dpkg --print-architecture...

vue+rem カスタムカルーセル効果

vue+remを使用したカスタムカルーセルチャートの実装は参考までに。具体的な内容は以下のとおりです...

React+TypeScriptプロジェクト構築事例解説

React プロジェクトの構築は非常に簡単ですが、Typescript と組み合わせると、実際にはそ...

MySQL 上級学習インデックスの長所と短所、使用ルール

1. インデックスの利点と欠点利点: 高速検索、高速グループ化および並べ替えデメリット: ストレージ...

まだ*を選択しますか?

アプリケーションが牛のように遅い理由は数多くあります。ネットワーク、システム アーキテクチャ、または...

FirefoxでCookieとお気に入りをインポートおよびエクスポートする方法

Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...

数百万のデータボリュームに対する MySQL ページングクエリ方法とその最適化の提案

データベース SQL の最適化はよくある問題です。何百万ものデータ ボリュームに対してページング ク...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

html、xhtml、xmlの違い

開発動向: html (ハイパーテキスト マークアップ言語) - xhtml (拡張ハイパーテキスト...

Dockerはコンテナポートバインディングのローカルポートを実装します

今日、イメージを起動した後、HTTP リクエスト経由でアクセスできないという小さな問題が発生しました...