技 巧 鍵 盤 ─ KeyNavi:キーボードを活用してホームページを快適に─    
キー割当表示[Shift-H]        
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] Try,Catch文の互換性対策 ・サイトマップ [Shift-S]

■ Try,Catch文の互換性対策

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()」のように関数を定義して やってもいいでしょう。



【JavaScript@Keynavi.Net : その他編 】
「Ctrl-矢印」でフォーカスを上下左右に移動できます。

  - status出力をリダイレクト:kl_status(s,opt)
  - 外部スクリプトを動的に読み込む
  - フレームページでも個別URL指定を可能に
  - 文字列の暗号化:kl_encrypt/decrypt()
  - Try,Catch文の互換性対策
  - クッキー処理:kl_cookie_set/del/get()

トップへ戻る [1]
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] Try,Catch文の互換性対策 ・サイトマップ [Shift-S]
キー割当表示[Shift-H] ─ KeyNavi Project 2003 ─