Navigator: userAgent プロパティ

Navigator.userAgent は読み取り専用のプロパティで、現在のブラウザーのユーザーエージェント文字列を返します。

メモ: 仕様書では、ブラウザーがこのフィールドを介して提供する情報をできるだけ少なくすることを求めています。このプロパティの値は、同じブラウザーの将来のバージョンでも同じままであると仮定してはいけません。まったく使用しないようにしたり、ブラウザーの現在のバージョンと過去のバージョンのためだけに使用するようにしてください。新しいブラウザーは、古いブラウザーと同じ UA、またはその一部を使い始めるかもしれません。ブラウザーエージェントが本当にこのプロパティによって広告されたものであるという保証は本当にありません。

また、ブラウザーのユーザーはこのフィールドの値を変更することができることを覚えておいてください (UA なりすまし)。

ユーザーエージェント文字列の検出に基づくブラウザーの識別は信頼できず、ユーザーエージェント文字列はユーザーが設定可能なので推奨されません。例えば、以下のようになります。

  • Firefox では、 about:config の general.useragent.override 設定を使って変更することができます。一部の Firefox 拡張機能でも設定可能です。しかし、これは取得する HTTP ヘッダーと navigator.userAgent が返す HTTP ヘッダーを変更するだけです。 他にも JavaScript コードを利用してブラウザー識別を行うメソッドがあるかもしれません。
  • Opera 6 以降では、メニューからブラウザー識別文字列を設定できます。

文字列で、ブラウザーが HTTP ヘッダーで提供する完全なユーザーエージェント文字列と、 Navigator オブジェクト上のメソッドやその他の関連メソッドへのレスポンスを指定します。

ユーザーエージェント文字列は形式的な構造に基づいて構築されており、いくつかの情報に分解することができます。これらの情報の各部分は、ユーザー-が設定可能な他の Navigator のプロパティから来ています。ユーザーエージェント文字列の形式について、より詳しい情報については、HTTP の User-agent ヘッダーを参照してください。

js
alert(window.navigator.userAgent);
// alerts "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0"

仕様書

Specification
HTML Standard
# dom-navigator-useragent-dev

ブラウザーの互換性

BCD tables only load in the browser

関連情報