イベントハンドラの登録:kl_addhandler()イベントハンドラの登録について説明します。マウスが押された(mousedown)時のイベント処理をするとして話を進めます。登録するのが普通です。既存のものを上書きしてしまう問題があります。「oldfunc()」は実行されないことになります。「window.onload=oldfunc;」という記述がある場合も同様です。いう関数を用意しました。以下のような特徴があります。他のスクリプトで予め指定されたハンドラを上書きせず。新たに追加するものと合わせ両方動く。「event」オブジェクトが入る。オブジェクトとして扱えます。ハンドラ関数に任意個数の引き数を渡せる。タイマー利用時と同じく変数の退避先に困る場合があります。関数の代わりに実行文字列を渡すこともできる。(New!)→処理内容をHTMLのタグ内の記述と同じようにも書けます。関数内では「this」で登録先のHTML要素を参照できる。IE5+のattachEvent()では「this==window」となっているので「this」が使えません。追加したハンドラは削除できる。Netscape4の場合はcaptureEvents/releaseEventsを内部で実行してくれる。自分で記述する必要が無い。kl_hashandler()でハンドラ関数が登録済みかどうか確認できる。IE4-6、NS4,6,7、Opera6-7、Mozilla。具体的には以下のケースで効果的です。誰か別の人が作ったJavaScriptが既にあり自分が作ったものと両方動かしたい。その時に既存のHTML、スクリプトは書き替えたくない。機能をモジュール化し各モジュール内で独立してイベントハンドラを登録したい。デザイン(HTML,CSS)とロジック(JavaScript)を分離したい。デザイナーとプログラマーが同時並行で仕事を進められる。