JavaScript を実行しているブラウザの種類およびそのレンダリングエンジン・ オペレーティングシステムの種類を判別します。 テストページで実際に試すことができます。
uai.js は自由に使用していただいて構いません。
実装ファイルは uai.js です。 このファイルは単独では実行しても意味がありません。 uai.js には UAIdentifier オブジェクトの定義が含まれており、これを他の JavaScript コードから呼び出して使います。
UAIdentifier オブジェクトの使用例を以下に挙げます。
var uai = new UAIdentifier();
if (uai.ie >= 5.0)
write("Internet Explorer 5.0 or later");
if (uai.firefox)
write("Mozilla Firefox");
if (uai.opera)
write("Opera");
alert(uai.toString());
new UAIdentifier()
UAIdentifier オブジェクトを初期化します。
引数はありません。コンストラクタ内でユーザエージェント判定コードが実行され、判定結果の値を含む オブジェクトが作成されます。
このコンストラクタを単なるメソッドとして呼び出した場合の動作は保証されません。
string toString()
判定結果を表す文字列を返します。
返される文字列には、次に示す文字のみが含まれます。
文字列の大まかな書式は、該当する判定結果の名前をカンマで区切ってつなげたものです。 バージョン番号等も分かっている場合は、名前に続いてコロンとその番号が続きます。
このメソッドが返す文字列の例:
WinNT の値が存在する場合、Win の値は文字列に含まれません。
Mozilla Revision のバージョンは Mozilla のバージョンに続いて出力されます。 (上の二つ目の例を参照)
ie, edge, mozilla, mozillarv, firefox, netscape, opera, vivaldi, safari, chrome, konqueror, epiphany, unknown,
trident, tasman, edgehtml, gecko, presto, applewebkit,
win, winnt, mac, linux, bsd : string/boolean/undefined
これらのプロパティの値は判別結果を表します。詳細は判定結果の使い方を参照。
UAIdentifier コンストラクタは、HTML 文書を表示するブラウザ上で実行されることで、 そのブラウザ (ユーザエージェント) を判別します。 判別は主に navigator オブジェクトの userAgent プロパティ文字列を元に行います。 グローバルオブジェクトに navigator プロパティが存在しない場合、判定は行われません。
また、より確実に判別を行うために、グローバルオブジェクトの以下の名前のプロパティについても調べます。
これらのプロパティが他のスクリプトなどにより上書きされている場合、正しく判別できない可能性があります。
ユーザエージェントが Internet Explorer である場合、判別に JScript の条件コンパイル機能を使用します。
UAIdentifier スクリプト内で @cc_on
ステートメントが実行されるため、
他のスクリプトで条件コンパイルを使用している場合はその動作に影響を与える可能性があります。
UAIdentifier が判別できる内容は以下の通りです。
注意: このスクリプトによる判定結果は、必ずしも正しいとは限りません。 レンダリングエンジンの判別はほぼ確実ですが、ブラウザおよびオペレーティングシステムの判別は ブラウザの種類や設定によっては誤った判定結果を出す可能性があります。 判定結果は参考情報としてお使い下さい。
判定結果は、UAIdentifier オブジェクトのプロパティとして表されます。 各プロパティはそれぞれ一つのブラウザ、レンダリングエンジン、またはオペレーティングシステムに 対応しています。 プロパティの値の型・形式は判定要素によって異なります。
判定の結果に該当するプロパティに結果の値が設定されます。
該当しないその他のプロパティは未定義 (undefined
) のままです。
プロパティ名 | 判定対象 | 値の書式 |
---|---|---|
ie | Internet Explorer | タイプ A |
edge | Microsoft Edge | タイプ B |
mozilla | Mozilla | タイプ A |
mozillarv | Mozilla Revision | タイプ B |
firefox | Firefox | タイプ B |
netscape | Netscape | タイプ B |
opera | Opera | タイプ B |
vivaldi | Vivaldi | タイプ B |
safari | Safari | タイプ B |
chrome | Chrome | タイプ B |
konqueror | Konqueror | タイプ B |
epiphany | Epiphany | タイプ B |
unknown | User agent 不明 | タイプ E |
trident | Trident | タイプ A |
edgehtml | EdgeHTML | タイプ A |
tasman | Tasman | タイプ A |
gecko | Gecko | タイプ C |
presto | Presto | タイプ B |
applewebkit | AppleWebKit | タイプ B |
win | Windows | タイプ D |
winnt | Windows NT | タイプ A |
mac | Mac OS | タイプ E |
linux | Linux | タイプ E |
bsd | BSD | タイプ D |
sunos | Solaris | タイプ E |
プロパティ値の書式の種類:
true
true
true
true
。文字列の書式は不定。true
true
になります。
unknown
プロパティが true
になります。レンダリングエンジンおよびオペレーティングシステムについては、
当てはまるものがない場合に特にそのことを示すプロパティはありません。
win
プロパティの値は winnt
プロパティの値の先頭に文字列 "NT"
を付けたものになります。