←Prev.Top / Web / Diary→Next

バージョンチェックする

エラーを出さないために

 JavaScriptはブラウザやバージョンによって動かないということが非常に多く、きちんとバージョンチェックをしておかないと、エラーの嵐が襲ってきたりします。
 そこで今回はバージョンチェックをしっかり学習してみることにします。
 普通、最初のうちにやることじゃ無いのか?という意見もあるような、無いような(あるんだってば)

先ずは、定義部分でチェック

 先ず、バージョン分岐の手としては、SCRIPTタグのLANGUAGEオプションにバージョンを記述するという手がある。NOSCRIPTタグも併用すれば、JavaScriptを使えないブラウザにもちゃんと反応することができる。

 あなたの現在使用中のブラウザは

「JavaScriptポケットリファレンス」によると、バージョンナンバーとブラウザの対応は以下の通り。

N2N3N4IE3
JavaScript1.2×××
JavaScript1.1×
JavaScript
JScript×××
LiveScript

 しかし、これでは、それ以上のバージョンでは動くというものは作れても、それ以下でのみ動くというものは作れないな。

navigator.appVersionでチェック

 丁寧にチェックをするならば、プログラム内部で細かく分岐する必要も出てくるので、ナビゲータープロパティ(属性)のappVersionを見てみるといい筈。

 appVersionの価を見てみると、 、となっている。
 数字以外にも色々とくっ付いてくるので、このままでは、分岐処理しにくい。
 幾つかのブラウザで確認した所、頭の3文字までは必ず数字のバージョンが返ってくるようだ、4文字めからは細かいバージョンでb(ベータ)とか入ってくるので、必ず数字が返ってくるとは限らない、普通はそんなに細かいバージョンチェックの必要性は無いので、これだけ取れればいいだろう。
 substringメソッドを使って (navigator.appVersion).substring(0,3)と書けば、ブラウザのバージョンの数字だけが得られるという訳。

B_VER=(navigator.appVersion).substring(0,3);

 上のスクリプトを最初に(HEAD内に)仕掛けて、グローバル変数に記録しておいたりすると便利だろう。
 ついでに、

B_VER=((navigator.appVersion).substring(0,3)>=3.0);

ってな感じに記述すれば、3.0以上ならばtrue、それ未満ならばfalseが得られるので、その後の処理で、

if(B_VER){...}

と言う感じに書けて、とっても便利ですね。

 今日はここまで。


[04.16.1998]
←Prev.Top / Web / Diary→Next