DOM2では、全ての Node がイベントを受け取る事が出来ます。
つまり、あらゆるエレメントがその対象となります。
このインターフェイスにより、イベントの登録などを行います。
先程の説明通り、全ての Node はこのインターフェイスを持っています。
document.addEventListener("mousemove", funcMouseMove, true);
function funcMouseMove(event) {
...
}
イベントを登録します。
イベント発生時に呼び出されるリスナオブジェクト名を決定します。
通常、これは関数(function)名になります。
キャプチャを使用する場合に true を指定します。
簡単に言えば、true にすると「本来のイベント発生前」にメソッドが呼び出され
false にすると「本来のイベント発生後」にメソッドが呼び出されます。
ほとんどの場合で true を使う事になるはずです。
イベントを削除します。
引数は addEventListener と同じです。
イベントを発生させます。
全てのイベントが持つ基底インターフェイスです。
イベントが発生すると、このインターフェイスを実装したオブジェクトが
メソッドの引数として渡されてきます。
load / unload / abort / error / select / change /
submit / reset / focus / blur / resize / scroll イベントは、このインターフェイスを持っています。
イベント種別名を返します。
これを含め、このインターフェイスが持つ全ての属性は readonly です。
このイベントが発生したターゲットそのものを返します。
このイベントを実際に処理しているターゲットを返します。
イベント発生フェーズを返します。
AT_TARGET / BUBBLING_PHASE / CAPTURING_PHASE のいずれかになります。
bubblingイベントの場合には true を返します。
イベント種別により予め決められています。
イベントをキャンセルできる場合には true を返します。
イベント種別により予め決められています。
イベントが発生した時点のタイムスタンプをミリ秒単位で返します。
基準時は特に定義されていない為、これから時刻などを求めるのは止めた方がいいです。
相対的に「前回のイベントが発生してから何秒経過したか」などに使いましょう。
イベントは「キャプチャ有イベント→デフォルトイベント→キャプチャ無イベント」
の順で処理されていきますが、これを呼び出すとその後のイベントが発生しなくなります。
詳細は不明です。
詳細は不明です。
DOMFocusIn / DOMFocusOut / DOMActivate イベントが持つインターフェイスです。
Event から派生しています。
interface UIEvent implements Event;
イベントが発生したビューを返します。型は AbstractView です。
イベントの詳細情報を、long型で返します。
詳細は不明です。
click / mousedown / mouseup / mouseover / mousemove / mouseout イベントが持つインターフェイスです。
UIEvent から派生しています。
interface MouseEvent implements UIEvent;
スクリーン上のX座標を返します。
スクリーン上のY座標を返します。
ブラウザ内のX座標を返します。
ブラウザ内のY座標を返します。
Ctrlキーが押されていれば true を返します。
Shiftキーが押されていれば true を返します。
Altキーが押されていれば true を返します。
Metaキーが押されていれば true を返します。
押されているボタンを返します。
0: 左ボタン、1: 真ん中ボタン、2: 右ボタン
詳細は不明です。
正確にはキーボードイベントが定義されたのはDOM3なので
このページに載せるのも変なのですが
需要の高いイベントと思われるので、ここで紹介することにします。
keydown / keyup イベントが持つインターフェイスです。
UIEvent から派生しています。
interface KeyboardEvent implements UIEvent;
押されたキーの種類を文字列型で返します。
定義文字列については、ここ を参照して下さい。
使用されているキーボードのキー配列種別を返します。
Ctrlキーが押されていれば true を返します。
Shiftキーが押されていれば true を返します。
Altキーが押されていれば true を返します。
Metaキーが押されていれば true を返します。
キーボードイベントについては実装がブラウザ毎にまちまちです。
ほとんどのブラウザはまだこの KeyboardEvent を実装していません。
多くの人が使っている keypress イベントも、DOM2(3)では定義されていません。
ですから残念ながら、この部分はブラウザ毎に処理を分ける必要があります。
もちろん、そういった非共通部分は関数化しておきましょう。
とりあえず、ブラウザ毎の簡単な説明です。
押したキーが通常文字の場合、e.charCode にASCII文字コードが入ります。
e.charCode = 「a -> 97」「A -> 65」
押したキーが特殊文字の場合、e.keyCode にASCII文字コードが入ります。
e.keyCode = 「TAB -> 9」「ENTER -> 13」
押したキーに関わらず、常にe.keyCode にASCII文字コードが入ります。
e.keyCode = 「a -> 97」「A -> 65」「TAB -> 9」「ENTER -> 13」
IEでは、onkeypress イベントは特殊文字のキー押下をハンドリングしないようです。 矢印キーなどをハンドリングしたい場合、 代わりに onkeydown イベントを使う必要があります。
他のブラウザについては未調査です。
ターゲットがフォーカスを受け取ったときに発生します。
ターゲットがフォーカスを失ったときに発生します。
ターゲットがアクティブになったときに発生します。
マウスのボタンをクリックしたときに発生します。
ちなみにこの場合、mousedown -> mouseup -> click の順にイベントが発生します。
detail には、連続して押下された回数が格納されます。
これにより、ダブルクリック・トリプルクリック等のイベントをハンドリング可能です。
マウスのボタンを押下したときに発生します。
マウスのボタンを離したときに発生します。
マウスカーソルがターゲット内に侵入してきたときに発生します。
relatedTarget には、直前までカーソルがあったターゲットが格納されます。
マウスカーソルがターゲット内に移動したときに発生します。
マウスカーソルがターゲット外に出たときに発生します。
relatedTarget には、直後にカーソルが当たるターゲットが格納されます。
キー押下時に発生します。
キーを離したときに発生します。
キーを押して離したときに発生します。
※ DOM公式イベントではありません
各種読み込みが完了したときに発生します。
ドキュメント内の全要素が読み込まれた後に発生します。
全てのフレーム内ドキュメントが読み込まれた後で発生します。
オブジェクトが読み込まれた後で発生します。
ドキュメントが破棄されるときに発生します。
BODY/FRAMESET要素で使用可能で、具体的には他のページを読み込もうとした段階です。
オブジェクト読み込みが中断されたときに発生します。
OBJECT要素で使用可能です。
各種読み込み時にエラーが起こったときに発生します。
オブジェクトの読み込みが正しく行われなかった場合
JavaScript実行時にエラーが発生した場合
テキストフィールドで何らかの文字が選択されたときに発生します。
INPUT/TEXTAREA要素で使用可能です。
コントロール内の値が変化して「フォーカスを失ったとき」に発生します。
INPUT/SELECT/TEXTAREA要素で使用可能です。
入力コントロールで値が変わる度にハンドリングしたい場合などは
キーイベント等をハンドリングする必要があります。
SUBMITボタンが押されたときに発生します。
RESETボタンが押されたときに発生します。
コントロールがフォーカスを受け取ったときに発生します。
LABEL/INPUT/SELECT/TEXTAREA/BUTTON要素で使用可能です。
コントロールがフォーカスを失ったときに発生します。
LABEL/INPUT/SELECT/TEXTAREA/BUTTON要素で使用可能です。
コントロールのサイズが変更されたときに発生します。
BODY要素で使用可能です。
コントロール付属のスクロールバー位置が変更されたときに発生します。
BODY要素で使用可能です。