第76回 「Netscape Navigatorのバージョンを判別」
今回はNetscape Navigatorのバージョンを判別するプログラムを作成します。
Netscape Navigatorが返すappName、appVersion、userAgentの文字列をもう一度見てみましょう。
●Netscape 4.x
navigator.appName : Netscape
navigator.appVersion : 4.7 [ja] (Macintosh; U; PPC)
navigator.userAgent : Mozilla/4.7 [ja] (Macintosh; U; PPC)
●Netscape 6.x
navigator.appName : Netscape
navigator.appVersion : 5.0 (Macintosh; en-US)
navigator.userAgent : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:0.9.4.1) Gecko/20020315 Netscape6/6.2.2
●Netscape 7.x
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.2) Gecko/20021120 Netscape/7.01
Netscapeはバージョン5がないのですが、userAgentの文字列およびappVersionの文字列には5.0とあります。このため、バージョン4.xまでは、そのままのバージョンが使えますが、バージョン6以降ではuserAgent内の末尾の文字列に書かれているバージョンを取得しなければなりません。
まず、appVersionの最初の1文字を取得し4以上の場合と、そうでない場合に分けます。バージョンが4以下の場合にはappVersionの最初の数値を取り出します。これは半角空白で区切られているのでsplit(" ")として取り出すことができます。バージョン6以降の場合は/で区切られているのでsplit("/")としてuserAgentから抜き出します。
実際のプログラムは以下のようになります。
<html>
<head>
<title></title>
<script language="JavaScript"><!--
// Netscapeのバージョンを返します
function getVersion()
{
var uName = navigator.userAgent;
var appVer =navigator.appVersion;
var n = eval(appVer.charAt(0));
if (n > 4)
{
ver = uName.split("/")[3];
}else{
ver = appVer.split(" ")[0];
}
return ver;
}
// --></script>
</head>
<body>
<form>
<input type="button" value="チェック" onClick="alert(getVersion())">
</form>
</body>
</html>
次回はOSの種類を調べるプログラムについて説明します。