イベントハンドラはタグの属性部分に指定します。例えば、ボタンをクリックした時に JavaScript を実行する場合は以下のようにします。ブラウザの種類やバージョンによって、各タグで使用可能なイベントハンドラは異なります。
<form action="#"> <input type="button" value="OK" onclick="alert('OK!!')"> </form>
JavaScript の文法に従い、セミコロン(;)で区切ることにより、複数の文を呼び出すことも可能です。
<form action="#"> <input type="button" value="OK" onclick="alert('A'); alert('B')"> </form>
イベントハンドラから関数を呼び出すこともできます。関数は通常、<head>〜</head> の間で定義します。
<html> <head> <title>テスト</title> <script type="text/javascript"> <!-- function kansuu() { alert("OK!!"); } // --> </script> </head> <body> <form action="#"> <input type="button" value="OK" onclick="kansuu()"> </form> </body> </html>
<a> や <input type="submit"> で onClick を使用する際などは、イベントハンドラの戻り値として false を返すことにより、本来の動作(クリック時の動作など)を無効化することができます。
<script type="text/javascript"> <!-- function kakunin() { if (window.confirm("よろしいですか?")) { return true; } else { return false; } } // --> </script> <a href="xxx.htm" onclick="return kakunin()">XXX</a> <form action="xxx.cgi"> <input type="submit" value="OK" onclick="return kakunin('OK');"> </form>
クリックされた時(onclick)、ダブルクリックされた時(ondblclick)に発生します。Internet Explorer 4.0 以降や Netscape 6 以降では <b> や <img> など大半のタグに指定することができますが、古いブラウザでは、<a>、<area> や、<input> タグによるボタンにのみ指定できます。
<form action="#"> <input type="button" value="OK" onclick="alert('OK')"> </form>
キーが押された時(onkeydown)、キーがしばらく押された時(onkeypress)、押されたキーが離された時(onkeyup)に発生します。
<form action="#"> <input type="text" onkeypress="alert('OK')"> </form>
マウスボタンが押された時(onmousedown)、マウスボタンが離された時(onmouseup)、マウスカーソルがそのオブジェクトの上に乗った時(onmouseover)、マウスカーソルがそのオブジェクトの上から離れた時(onmouseout)マウスカーソルが移動した時(onmousemove)に発生します。
<a href="#" onmouseover="alert('OVER')" onmouseout="alert('OUT')"><img alt="xxx" src="xxx.gif" height=100 width=100></a>
ページが読込まれた時(onload)、他のページに移動する時(onunload)に発生します。
<body onload="alert('Hello')" onunload="alert('Bye')">
その部品がクリックされるなどして、選択された状態になることを「フォーカスがあたる」といいます。これらのイベントは、フォーカスを得た時(onfocus)、フォーカスを失った時(onblur)に発生します。
<form action="#"> <input type="text" onfocus="alert('Hello')"> </form>
フォームがサブミットされた時(onsubmit)、フォームがリセットされた時(onreset)に発生します。onsubmit="..."、onreset="..." の戻り値として false を返すことにより、サブミットボタン、リセットボタンの本来の動作を無効化することができます。
<form action="xxx.cgi" onsubmit="return kakunin()"> <input type="text" name="WORD"> <input type="submit" value="OK"> </form>
フォーム部品の内容が変更された時や、フォーム部品の内容が変更されて、別のフォーム部品にフォーカスが移動した時に発生します。
<form action="#"> <select onchange="alert('changed!!')"> <option>AAA</option> <option>BBB</option> </select> </form>
ウィンドウがリサイズされた時(onresize)、ウィンドウが移動された時(onmove)に発生します。
<body onresize="alert('Resize')" onmove="alert('Move')">
ファイルがウィンドウにドラッグ&ドロップされたときに発生します。ドロップされたファイルの URL を得るには event.data を参照しますが、セキュリティの設定を変更しておく必要があります。
<body ondragdrop="alert(event.type)">
イメージの読込みが中断された時に発生します。<img> タグに対して指定します。
読込みが失敗した時に発生します。<body>、<img> などのタグに指定します。
<img src="xx.gif" alt="xx" onerror="alert('画像読みこみ失敗!')">
テキストが選択された時に発生します。