バージョンチェック

NNも2.0, 3.0,そして4.0と進化を遂げ、さらにMSIEもシェアを伸ばしています。 そのため、どのようなブラウザでも正しく実行できるスクリプトを記述することは なかなか難しくなってきました。ブラウザのバージョンを調べ、正しく実行できない ものでは最低限エラーがでることを避けるようなスクリプトを記述します。

function NNCheck(version) { if ((navigator.appName.indexOf("Netscape") >= 0) && (version <= parseInt(navigator.appVersion.substring(0, 3)))) { return true; } else { return false; } }
このNNCheck()は、ブラウザのバージョンがいくつ以上かを調べる関数です。 たとえば、NN3.0以降でしか動作しないスクリプトを書いた場合には、
if (NNCheck(3)) {
   バージョン3以降用のスクリプト
} else {
   NN2.0やMSIEなどの時に実行するスクリプト
}
のように記述します。引数に指定されたバージョンより新しいNetscape Navigatorを 使っている時にこのNNCheck()は真(true)を返します。

NNCheck()のしくみ

この関数でチェックする項目は次の2点です。 NetscapeNavigatorであることは、navigator.appNameに"Netscape"という文字列が含まれていることでチェックします。navigator.appNameは文字列(Stringオブジェクト)ですから、indexOf()メソッドで文字列が含まれているかどうかチェックできます。含まれていないときは、-1が返されます。

バージョンはnavigator.appVersionで取得します。navigator.appVersionは

"3.0 (Win95; I)"
のような文字列を返します。substring()メソッドで、先頭3文字("3.0")だけを取り、parseFloat()で数値に変換し、NNCheck()の引数に指定した値と比較します。