JavaScriptで書いてみよう!
(イベントハンドラ)

ここではイベントハンドラについて説明します。




JavaScriptアプリケーションのほとんどはイベントドリブンです。イベントは通常はユーザが何かをした結果として起るアクションです。例えば、ボタンをクリックする、テキストを書き換える、マウスをリンクに重ねるなどはイベントです。イベントによりスクリプトを実行するためには、onChange、onClickなどのイベントハンドラを定義します。
イベントハンドラはJavaScriptのベンダ、バージョンにより異なっています。
JavaScript v1.3におけるイベントハンドラは以下のとおりです。

イベント対象契機イベントハンドラ
Abortimagesユーザがイメージのロードを中止した(例えば、リンクまたはストップボタンをクリックした)onAbort
Blurwindows and all form elementsユーザがウィンドウまたは要素からフォーカスを移動したonBlur
Changetext fields, textareas, select listsユーザが要素の値を変更onChange
Clickbuttons, radio buttons, checkboxes, submit buttons, reset buttons, linksユーザがフォームの要素またはリンクをクリックしたonClick
DragDropwindowsユーザがファイルなどのオブジェクトをブラウザのウィンドウにドロップしたonDragDrop
Errorimages, windowsドキュメントまたはイメージのロードがエラーになったonError
Focuswindows and all form elementsユーザがウィンドウまたは要素にフォーカスを与えたonFocus
KeyDowndocuments, images, links, text areasユーザがキーを押したonKeyDown
KeyPressdocuments, images, links, text areasユーザがキーを押したままにしたonKeyPress
KeyUpdocuments, images, links, text areasユーザがキーを放したonKeyUp
Loaddocument bodyユーザがページをロードしたonLoad
MouseDowndocuments, buttons, linksユーザがマウスのボタンを押したonMouseDown
MouseMovenothing by defaultユーザがマウスのカーソルを移動させたonMouseMove
MouseOutareas, linksユーザがマウスのカーソルをクライアントサイドイメージマップまたはリンクの外側に移動させたonMouseOut
MouseOverlinksユーザがマウスのカーソルをリンクの上に移動させたonMouseOver
MouseUpdocuments, buttons, linksユーザがマウスのボタンを放したonMouseUp
Movewindowsユーザまたはスクリプトがウィンドウを移動させたonMove
Resetformsユーザがフォームをリセットした(リセットボタンを押した)onReset
Resizewindowsユーザまたはスクリプトがウィンドウの大きさを変えたonResize
Selecttext fields, textareasユーザがフォームの要素の入力フィールドを選択したonSelect
Submitformsユーザがフォームをサブミットした(サブミットボタンを押した)onSubmit
Unloaddocument bodyユーザがページを抜けたonUnload

イベントハンドラの定義

    イベントをハンドルするためにイベントハンドラ(JavaScriptの関数またはステートメントの並び)を定義します。イベントがあるHTMLタグを対象としているならば、そのタグにイベントハンドラを定義することができます。イベントハンドラの名前はイベントの前に"on"をつけます。例えば、facusイベントのイベントハンドラはonFocusです。
    HTMLタグにイベントハンドラを作成するには、タグにイベントハンドラ属性を追加します。属性の値としてJavaScriptのコードをクォートの中に記述してください。
    構文:
    <TAG eventHandler="JavaScript Code">
    
    computeという関数を作成し、この関数をボタンのクリックにより呼び出したい場合、以下のように記述します。
    例:
    <INPUT TYPE="button" VALUE="Calculate" onClick="compute(this.form)">
    
    イベントハンドラを作成した場合、対応するJavaScriptのオブジェクトはイベントハンドラ名を小文字にしたプロパティを持つことになります。
    前述の例では、onclickプロパティの値は"compute(this.form)"になります。
    ダブルクォートはシングルクォートに交換することを忘れないでください。
    例:
    <INPUT TYPE="button" NAME="Button1" VALUE="Open Sesame!"
       onClick="window.open('mydoc.html', 'newWin')">
    

    例:イベントハンドラを使う

    省略

    イベントハンドラを厳密に呼び出す

    省略


イベントオブジェクト

    省略


イベントキャプチャリング

    省略


フォーム入力の評価

    JavaScriptの最も重要な使用方法の一つは、サーバのプログラムのためにフォーム入力の評価を行なうことです。これは以下のように便利です。

    ・サーバの負荷を減らす。データは事前に評価し、問題があればサーバに渡さないようにできる。
    ・ユーザのエラーに対し、遅れを減らす。他の方法では、データをサーバに送り、サーバで評価し、クライアントに結果を返すことになる。
    ・サーバのプログラムを簡単にできる。

    一般的に、少なくとも二個所で入力を評価したいはずです。

    ・ユーザがデータを入力したとき、フォームの各要素のonChangeイベントハンドラを用います。
    ・ユーザがフォームをサブミットしたとき、フォームのサブミットするボタンのonClickイベントハンドラを用います。

    評価関数の例

    省略

    評価関数を使用する

    省略



ホームページへ戻る