第70回 「ブラウザを判別する」
今回はブラウザを判別する方法について説明します。
JavaScriptでプログラムを作成していると、どうしてもブラウザの違い、バージョンの違いを考えなければならない場合がでてきます。ブラウザやブラウザのバージョンを判別するにはnavigatorオブジェクトの
appName
アプリケーション名
appVersion
ブラウザバージョン
userAgent
ユーザーエージェント
が利用できます。ブラウザ名はappName、バージョンはappVersionを参照すれば終わりです。
と、あっさり終わらないのが現実です。アプリケーション名もバージョンも、正しい名前、値を返さないためです。このため頼れるのはuserAgentが返す文字列だけ、という事になります。ただ、このuserAgentも詐称できるため100%確実にブラウザを特定できる保証はありません。OperaやSafariなど他ブラウザも含めると、かなり面倒な状態になります。
以下のプログラムはappName, appVersion, userAgentを表示するものです。
<html>
<head>
<title></title>
</head>
<body>
<script language="JavaScript"><!--
aName = navigator.appName;
ver = navigator.appVersion;
uAgent = navigator.userAgent;
document.write("navigator.appName : <b>" + aName + "</b><br>");
document.write("navigator.appVersion : <b>" + ver + "</b><br>");
document.write("navigator.userAgent : <b>" + uAgent + "</b><br>");
// --></script>
</body>
</html>
このプログラムを実行した場合に返される内容は以下のようになります。
●Windows XP + Internet Explorer 6
navigator.appName : Microsoft Internet Explorer
navigator.appVersion : 4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
navigator.userAgent : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
●Windows XP + Netscape 7.0
navigator.appName : Netscape
navigator.appVersion : 5.0 (Windows; ja-JP)
navigator.userAgent : Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.0.2) Gecko/20030208 Netscape/7.02
●Windows XP + Opera 7
navigator.appName : Microsoft Internet Explorer
navigator.appVersion : 4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1)
navigator.userAgent : Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.01 [en]
●MacOS X + Internet Explorer 5.22
navigator.appName : Microsoft Internet Explorer
navigator.appVersion : 4.0 (compatible; MSIE 5.0; Macintosh; I; PPC)
navigator.userAgent : Mozilla/4.0 (compatible; MSIE 5.22; Mac_PowerPC)
●MacOS X + Netscape Navigator 7.0
navigator.appName : Netscape
navigator.appVersion : 5.0 (Macintosh; ja-JP)
navigator.userAgent : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-JP; rv:1.0.1) Gecko/20020823 Netscape/7.0
●MacOS X + Safari 1.1
navigator.appName : Netscape
navigator.appVersion : 5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/103u (KHTML, like Gecko) Safari/100
navigator.userAgent : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/103u (KHTML, like Gecko) Safari/100
現在、多くのシェアを占めているのがInternet Explorerですが、MacOS XではSafariというブラウザが標準になってきています。すでにInternet Explorerはメンテナンスモードで今後新しいバージョンが出ないためです。
ブラウザチェックは今までInternet ExplorerとNetscapeでしたが、今後はInternet ExplorerとSafariのチェックが必要になると思われます。
そこで次回は、これらの情報を元にして含まれる文字列からInternet ExplorerとSafariを判別してみます。