技 巧 鍵 盤 ─ KeyNavi:キーボードを活用してホームページを快適に─    
キー割当表示[Shift-H]        
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] ページ全体に対するイベントハンドラの登録 ・サイトマップ [Shift-S]

■ ページ全体に対するイベントハンドラの登録

ページ全体にイベントハンドラを設定することを考えます。

HTMLで記述する場合、<body onload="処理内容"> などと <body>タグ中に書くのが普通です。 一方、JavaScriptで行う場合 onLoadでは「window.onload=ハンドラ関数;」 とするのがもっとも一般的です。

IEではdocument.body=...でも動作します。

ちょっと混乱しやすいのですが マウスが押された場合には「window」ではなく「document」を使い 「document.onmousedown=...」とします。

これらはイベントハンドラの登録:kl_addhandler() を使うと 「kl_addhandler(window,"onload",ハンドラ関数)」 「kl_addhandler(document,"onmousedown",ハンドラ関数)」となります。

以下に よく使われるイベントハンドラとその一般的な登録先を列挙します。

【よく使われるイベントハンドラ:ページ全体に対するもの】
イベントハンドラ名 登録先オブジェクト 該当イベント
onload window ページの全体(画像類含む)が読み込まれた
onunload window 他のページへ移動した、Windowを閉じた
onresize window ウィンドウのリサイズ
onfocus window ウィンドウがフォーカスされた
onblur window ウィンドウのフォーカスが外れた
onmousedown document マウスボタンが押された
onmouseup document 押されたマウスボタンが押し戻された
onmousemove document マウスが移動した (移動中何度も呼ばれる)
onclick document クリックが実行された (マウスボタンが上げられる瞬間発生)
ondblclick document ダブルクリック
onkeydown document キーが押された(一度のみ呼ばれる)
onkeypress document キーが押された状態(押されている間 何度も呼ばれる)
onkeyup document キーが押された状態から戻された(一度のみ呼ばれる)
Netscape4ではonclick指定時にテキストや画像をクリックしたのを拾えず。 onmousedown/upを使うと無難。ちなみにondblclickはOK。 Opera6ではonresize,ondblclickはサポート外。

イベントハンドラは他にも沢山有り下記スクリプトで調べられます。

以下はIE6でのwindowオブジェクトに対する実行結果です。 上のスクリプトを実行したら書き換えられます。

補足 一般に「for(var i in e)...」で要素「e」の各種属性を取得できます。 上のスクリプトの動作状況ですが Netscape,Mozillaはスクリプトで指定したハンドラのみ得られます。 Opera6,7では殆ど属性を得られないため何も表示されません。 一方WinIE4-6は 設定していないハンドラも含め多数表示されます。

onafterprintnull
onbeforeprintnull
onbeforeunloadnull
onblurnull
onerrornull
onfocusnull
onhelpnull
onloadnull
onresizenull
onscrollnull
onunloadnull




【JavaScript@Keynavi.Net : 一般イベント処理編 】
「Ctrl-矢印」でフォーカスを上下左右に移動できます。

  - マウス位置取得:kl_mousex,y()
  - Focus/Click先の要素を取得:kl_target()
  - イベントハンドラの登録:kl_addhandler()
  - ページ全体に対するイベントハンドラの登録
  - レイヤーにイベントハンドラを登録
  - フォームやリンクにイベントハンドラを登録

トップへ戻る [1]
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] ページ全体に対するイベントハンドラの登録 ・サイトマップ [Shift-S]
キー割当表示[Shift-H] ─ KeyNavi Project 2003 ─