NS4やIE4では実際に実行されなくても
スクリプト内に「try{...}catch(e){...}」という記述があるだけで
エラーになります。
(NS4:「try is a reserved identifier.」 IE4:「構文エラーです。」)
(上記は新しいブラウザで実行しても何も起きませんがNS4,IE4でエラーになります。)
その為この構文はスクリプトタグの指定を工夫するか
「eval()」を使い IE5+、Netscape6+(Mozilla含),Opera6+
でのみ実行するようにします。
下記の様にすれば未対応ブラウザでは
「try,catch」はJavaScriptの単語として解析されず
単なる文字列としてのみ処理されるのでエラーを回避できます。
【try文の使用例】
<script language="javascript" src="http://www.keynavi.net/files/keynavi_ja.js"></script>
<script language="javascript"><!--
function my_func(){ a=b; return 1; }
function my_test(){
var s="try{ my_func() }catch(err){ 0 }";
if(KL_IE5 || KL_NS6 || KL_OP6){
return eval(s) ? "無事に終了!" : "エラー捕捉!";
}
return "未サポート";
}
//-->
</script>
(上記はIE4,NS4で実行してもエラーにはなりません。)
「eval()」の代わりに「f=new Function(s); f()」のように関数を定義して
やってもいいでしょう。