navigatorオブジェクトは ブラウザに関する情報を取得するために使われます。
ブラウザの 名前 を表わします。
Netscape Navigator では "Netscape"、
Internet Explorer では "Microsoft Internet Explorer" となります。
ブラウザの code name を表わします。
ブラウザのバージョンを表わします。
JavaScriptは年々機能が充実してきているので、
ブラウザのバージョンによってコードを書き分けなければ、
適切に動作しない可能性があります。
ブラウザのサポートするMIMEタイプを示す mimeType
オブジェクトの配列を返します。
ですが、Netscape Navigator と Internet Explorer のどちらとも
"Mozilla" となってしまうので、
2大ブラウザしか念頭に入れていない場合は意味がありません。
Netscape Navigator 4.04 では "4.04 [ja] (…)"、
Internet Explorer 4.0 では "4.0 (compatible; MSIE 4.0; …)" となります。
function test1() {
alert(navigator.appCodeName);
alert(navigator.appName);
alert(navigator.appVersion);
}
そのためにブラウザのバージョンを識別する必要があります。
取り敢えずここでは Netscape Navigator 3.0/4.0 と Internet Explorer 3.0/4.0
を識別します(以前調査したとき約99%がこの4つのブラウザでした)。
var browser;
with(navigator) {
if(appName.charAt(0) == "N") { //最初が "N" ならネスケ
if(appVersion.indexOf("4.0") >= 0)
v = appName + " 4.0";
else if(appVersion.indexOf("3.0") >= 0)
v = appName + " 3.0";
else
v = "other";
}
else if(appName.charAt(0) == "M") { // "M" ならIE
if(appVersion.indexOf("4.0") >= 0)
v = appName + " 4.0";
else if(appVersion.indexOf("3.0") >= 0)
v = appName + " 3.0";
else
v = "other";
}
else
v = "other";
}
alert(v);
var I, n = navigator.mimeTypes.length; //配列の長さ
with(navigator) {
for(i = 0; i < n; i++)
with(mimeTypes[i]) {
if(!confirm(description)) break; //説明
if(!confirm(type)) break; //MIMEタイプ
if(!confirm(suffixes)) break; //拡張子
}
}