*JavaScriptのバージョン記述によるエラー回避


"<SCRIPT>"タグ内の"LANGUAGE"オプション指定で、"LANGUAGE=JavaScript1.1"や"LANGUAGE=JavaScript1.2"と言った具合にJavaScriptのバージョンを記述をするすれば、ページを読み込む時そのバージョンのブラウザでは未対応のJavaScriptが記述してあてっもエラーになる事はありません。
しかしこのままでは、イベントハンドラでイベントを発生させた時などにエラーを起こしてしまう場合があります、このような問題を回避するための一つの方法として、ダミーのスクリプトを設定すると言う方法があります。
例えば「imageオブジェクト」の「アニメーションにスタート・ストップボタンを付けたい」の場合、このままだとNetscape2.xのブラウザでこのページを見ると、ページの読み込み時にはなにも起こらないのですが、「スタート」あるいは「ストップ」ボタンを押した途端、エラー表示のウインドウが開いてしまいます。
このような時、

-------------------------------------------
<SCRIPT Language="JavaScript">
<!---
function anime1(){ }
function stop1(){ }
//---->
</SCRIPT>
<SCRIPT Language="JavaScript1.1">
<!---
var TimeSet1 = 500 ;
var ImageSetA = 1 ;
  ・
  ・
  ・
-------------------------------------------

といった具合に画像ファイルをアニメーションさせるスクリプトの前に、なにもしないダミーのスクリプトを記述すると、Netscape2.xの場合"Language"オプションが"JavaScript1.1"のスクリプトには反応しないので、ダミーのスクリプトが評価されエラー表示のウインドウは表示されません。
また、Netscape3.0では両方のスクリプトが認識されますが、同じ関数名があった場合後の方の関数が評価されるので正常にスクリプトが実行されます。
もちろん、ダミーの部分にNetscape2.x用の処理を設定しても構いません。
本書ではこの他にも、ブラウザーの種類やバージョンによってページを振り分ける、などの方法を紹介していますのでそちらも参考にして下さい。

-注意-
このコラムに訂正があります、「変更と訂正」の「JavaScriptのバージョン記述によるエラー回避」を参照して下さい。


[コラムのページへ...]