Navigator: userAgent プロパティ

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

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

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

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

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

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

ユーザーエージェント文字列は形式的な構造に基づいて構築されており、いくつかの情報に分解することができます。これらの情報の各部分は、ユーザ-が設定可能な他の Navigator のプロパティから来ています。Gecko ベースのブラウザは以下の一般的な構造に準拠しています。

userAgent = appCodeName/appVersion number (Platform; Security; OS-or-CPU;
Localization; rv: revision-version-number) product/productSub
Application-Name Application-Name-version

js
alert(window.navigator.userAgent);
// alerts "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape6/6.1"

仕様書

Specification
HTML Standard
# dom-navigator-useragent-dev

ブラウザーの互換性

BCD tables only load in the browser

関連情報