このドキュメントは以下で説明するW3C文書の翻訳です。
この翻訳はW3Cの正式な仕様ではありえません。
翻訳者は翻訳の正確さを保証するものではありません
仕様の原文 / 著作権表記
Translation Copyright © 2001/01/20 Ginga
このDOM2イベントモデルは2つのゴールを目指して設計された。 1つめのゴールは、イベントハンドラの登録を可能にし、ツリー構造の中でイベントの流れを説明し、各イベントについて基本的なコンテキスト情報を提供する、普遍的なイベントシステムの設計である。さらにこの仕様は、ユーザーインターフェースコントロールとドキュメントの内容変更(ミューテーション)の通知のための、イベントの標準的なモジュールを、それらの各イベントモジュールのコンテキスト情報とともに提供する。
このイベントモデルの2つめのゴールは、 DOM Level 0 ブラウザで用いられている現在のイベントシステムの共通サブセットを提供することにある。 これは既存のスクリプトおよびコンテンツとの互換性を維持するためである。 このゴールが以前との完全な互換性を満たすことは期待していない。 しかしこの仕様は、可能な場合にはこれを達成するように試みている。
イベントモデル仕様の以降のセクションでは、DOMイベントモデルの仕様と、そのモデルで使用するよう設計された数多くの適合イベントモジュールとの双方について定義する。 このイベントモデルはイベントの普及(propagation)および、イベントリスナー登録とイベントインターフェースという2つのセクションで構成されている。
DOMアプリケーションは、DOMImplementation
インターフェースのhasFeature(feature,
version)
メソッドを、"Events" と "2.0"を(それぞれ)パラメータ値として用いて、その実装によってこのイベントモジュールがサポートされているかどうかを決定しても良い。
このモジュールを完全にサポートするためには、実装は
DOM レベル 2 コア 仕様[DOM Level 2 Core]で定義されている「コア」の機能もサポートしなければならない。
適合性
に関するさらなる情報をDOM レベル 2 コア 仕様 [DOM Level 2
Core]で参照して頂きたい。
各イベントモジュールでは、そのイベントモジュールリスニングの中で、自身のfeature文字列を示している。
イベントフローとは、イベントがDOMインプリメンテーションから発してドキュメントオブジェクトモデルに渡されるプロセスである。
イベント捕獲とイベント浮上の方法論は、多くのイベントリスナー登録の技術と結びついて、多様な方法でイベントを処理することを可能にする。
これはEventTarget
レベルでローカルな位置で操作され、また(視点を変えて)ドキュメントツリーでより上位のEventTarget
から中心に、操作されていく。
各イベントは、DOMインプリメンテーションによって指定されたEventTarget
をもつ。
この
EventTarget
はEvent
の
target
属性によって設定される。
イベントがターゲットに到達すると、EventTarget
に登録されたイベントリスナーがトリガーされる。
そのEventTarget
の全てのEventListeners
が、このEventTarget
が受け取ったいかなるイベントもトリガー可能であるとしても、
そのEventTarget
における他のEventListeners
との間で、どの順序でそのイベントを受け取るか、については指定されない。
EventListener
中で投げられたいかなる例外も、そのイベントの伝播を止めるものではない。
これは、それ以上の(additional)いかなるEventListener
も、記述された方法(マナー)に従って、処理を継続する。
EventListener
から取得したアクションは、それ以上のイベントを発動(fire)しうることが予期されている。それ以上のイベントは同様の方法で操作され、このイベントモデルの中でリエントランシー(再帰)を発生しうる。
イベント捕獲とは、そのイベントターゲットの
祖先
に登録されたイベントリスナーが、そのイベントターゲットによって受け取られる前に、所定のタイプのイベントを妨害することができる処理である。
捕獲はツリーの頂上、通常Document
から、以下で説明する浮上とは対照的に、下降的に処理(operate)される。
ツリーの頂点からそのイベントのターゲットまでの
EventTarget
の連鎖は、そのイベントの最初の送出(dispatch)より前に決定される。ツリーの変更がイベント処理中に発生した場合は、イベントフローはツリーの最初の状態に基づいて処理される。
EventTarget
に登録されようとしている
EventListener
は、addEventListener
メソッドのuseCapture
パラメータを
true
と指定することで、
(EventListener
が)イベントを捕獲するようにすることができる。
その場合、そのタイプのイベントが捕獲オブジェクトの
子孫
に送出されたときは、
このイベントは、ドキュメントの頂上からそのイベントのターゲットまでの直線上に存在する、適切なタイプのどのような捕獲イベントリスナーもトリガーする。
この下降的な伝播はイベントターゲットに到達するまで続く。
捕獲した(capturing)
EventListener
は、それが登録された
EventTarget
に直接に送出されたイベントにはトリガーされない。
もし捕獲した(capturing) EventListener
が、それ以上のイベント発生による処理を防ぎたい場合は、
Event
インターフェースのstopProgagation
メソッドを呼ぶことができる。
これは、たとえ同じ階層レベルで登録された他のEventListeners
がそのイベントを受け取るとしても、それ以上のイベントの送出を防ぐ。
一度イベントのstopPropagation
メソッドが呼び出されると、
そのメソッドのそれ以上の呼び出しはそれ以上意味を持たない。
もしその他の捕獲者が存在し、かつstopPropagation
が呼ばれていなかった場合、そのイベントはそのターゲット自身の適切な(タイプの)
EventListeners
をトリガーする。
イベント捕獲は、全ての関係ある集合がその通知の受け取りを希望するターゲットにリスナーを直接登録する、委任(デリゲート)ベースのイベントモデルに類似しているが、
2つの重要な側面で異なるものである。まず、
イベント捕獲は捕獲した(capturing) EventTarget
の
子孫をターゲットした
イベントの防止のみを許している。
祖先や
兄弟、あるいはその兄弟の
子孫
をターゲットしたイベントについては、防止を許していない。
次に、イベント捕獲は単一のEventTarget
について指定するのではなく、特定のタイプのイベントについて指定するのである。
一度指定されたら、イベント捕獲はその捕獲者のdescendantsをターゲットにした、指定タイプの全てのイベントを防止する。
浮上するものとして設計されたイベントは、最初は非浮上イベントと同様のイベントフローで処理される。このイベントはそのターゲットとなるEventTarget
に送出され、そこで見つかったイベントリスナーがトリガーされる。
その後、浮上イベントは、継承した各EventTarget
に登録されたイベントリスナーをチェックしながら、そのEventTarget
の祖先の連鎖を上って、さらなるイベントリスナーをトリガーする。
この上昇的な伝播はDocument
まで含むように続くわけではない。
捕獲者として登録された
EventListener
は、このフェーズの間はトリガーされない。
このEventTarget
の
イベントターゲットからツリーの頂上までの連鎖は、最初のイベントの送出より前に決定される。
もしイベント処理中にツリーの変更が発生した場合、イベントフローは最初のツリーの状態に基づいて処理される。
どのようなイベントハンドラも、Event
インターフェースのstopPropagation
メソッドを呼び出して
さらなるイベントの伝播を防止して良い。
もしいずれかのEventListener
がこのメソッドを呼び出したら、現在のEventTarget
上にあるその他全ての
EventListeners
はトリガーされるが、浮上はそのレベルで完了となる。
さらなる浮上を防ぐために必要なのは、ただ1つのstopPropagation
だけである。
イベントにはキャンセル可能と指定されるものがある。それらのイベントについては、DOMインプリメンテーションには、一般的に、そのイベントに関連付けられたデフォルト動作がある。 この例としてはwebブラウザにおけるハイパーリンクがある。 ユーザーがハイパーリンク上をクリックしたとき、デフォルト動作は一般的にハイパーリンクをアクティブ化するころである。 これらのイベントを処理する前に、実装はそのイベントを受け取るよう登録されたイベントリスナーをチェックして、それらのリスナーにイベントを送出しなければならない。 そのとき、これらのリスナーは、実装のデフォルト動作をキャンセルするか、それともそのデフォルト動作を処理することを許すかというオプションをもつ。 ブラウザのハイパーリンクの場合は、この動作のキャンセルはハイパーリンクをアクティブ化しないという結果に至る。
キャンセルは
Event
の
preventDefault
メソッドの呼び出しによって実現される。
もし1つ以上のEventListeners
がイベントフロー中のいずれかのフェーズでpreventDefault
を呼び出した場合、そのデフォルト動作はキャンセルされる。
他の実装では、もしあれば、各イベントと関連付けられた自身のデフォルト動作を指定するものもあろう。DOMではそれらの動作を指定するような試みはしない。
EventTarget
インターフェースは、DOMイベントモデルをサポートする実装においては、全てのNodes
に実装される。
そして、バインディング固有の変換(キャスティング)メソッドをNode
インターフェースのインスタンスに用いることで、このインターフェースは受け取られることが可能になる。
このインターフェースはEventTarget
上のEventListeners
の登録と削除、それからそのEventTarget
に対するイベントの送出を可能にする。
// DOM レベル 2で導入: interface EventTarget { void addEventListener(in DOMString type, in EventListener listener, in boolean useCapture); void removeEventListener(in DOMString type, in EventListener listener, in boolean useCapture); boolean dispatchEvent(in Event evt) raises(EventException); };
addEventListener
EventListener
がEventTarget
に追加されたら、それがイベントを処理している間は、それはカレントアクションによってはトリガーされないが、そのイベントフローの以降のステージ、たとえば浮上のフェーズなどではトリガーされうる。EventListener
が同一のEventTarget
に、同一のパラメータで登録された場合、その複製インスタンスは破棄される。
それらが EventListener
を2回呼ばれることはないし、破棄されているためremoveEventListener
メソッドで削除する必要もない。
type
DOMString
型listener
EventListener
型listener
パラメータは、イベント発生時に呼び出されるメソッドを含む、ユーザーによって実装されたインターフェースを取る。useCapture
boolean
型useCapture
はユーザーが捕獲を開始(initiate)したいことを表す。捕獲の開始後は、指定されたタイプの全てのイベントが、
下方のEventTargets
に送出されるより前に、
ここで登録されたEventListener
に送出される。
ツリー上で浮上中のイベントは、捕獲を用いるよう設計されたEventListener
をトリガーしない。dispatchEvent
dispatchEvent
が呼ばれた
EventTarget
である。
evt
Event
型
|
|
removeEventListener
EventListener
がEventTarget
から削除されると、それはカレントアクションからトリガーされることはない。
EventListener
は、削除された後は絶対に呼び出されてはならない。EventTarget
に現在登録されているEventListener
を何ら識別しないような引数を付けたremoveEventListener
の呼び出しは何の効果もない。
type
DOMString
型EventListener
のイベントタイプを指定する。listener
EventListener
型EventListener
パラメータは、削除されるEventListener
を表す。useCapture
boolean
型EventListener
がリスナーを捕獲するものとして登録されていたかどうかを指定する。
もしリスナーが二重に、ひとつは捕獲するものとして、もうひとつは捕獲しないものとして、登録されていたら、それらは別々に削除されなければならない。リスナーを捕獲するものの削除は、同じリスナーの捕獲しない方には影響しないし、その逆もまた真なりである。EventListener
インターフェースは、イベントを扱う主要な方法である。
ユーザーはEventListener
インターフェースを実装して、
EventTarget
上のリスナーにAddEventListener
メソッドを用いて登録する。
また、そのリスナーの仕様が完了した後は、ユーザーはそれらの
EventListener
を
EventTarget
から削除すべきである。
Node
が
cloneNode
メソッドを用いてコピーされた場合、
元のNode
に結び付けられたEventListener
は、コピーされたNode
には結びつけられることはない。
もしユーザーが同じ
EventListener
を新しく生成されたコピーにも追加したい場合は、ユーザーはそれらを手動で追加しなければならない。
// DOM レベル 2で導入: interface EventListener { void handleEvent(in Event evt); };
HTML 4.0では、イベント属性はエレメントの属性として指定される。
従って、同じタイプの2番目のイベントリスナーの登録は、最初のリスナーを置き換える。
DOMイベントモデルでは、単一のEventTarget
に複数のイベントリスナーを登録することを可能にしている。
これを実現するために、イベントリスナーはもはや属性値としては保存されない。
HTML 4.0と互換性を保つために、実装者はイベントハンドラを表す属性の設定を、
そのEventTarget
上のEventListener
の生成および登録とみなしても良い。
useCapture
のデフォルト値は
false
である。
このEventListener
は、EventTarget
上に登録されたその他全てのEventListeners
と同様の方法で振る舞う。
もしイベントリスナーを表す属性が変化したら、それはそれまでに登録されていたEventListener
の削除であり、新しいものの登録であるとみなしてよい。
HTML 4.0のイベントリスナーには、それぞれのイベントに定義されたコンテキスト情報にアクセスすることを可能にする技術は提供されていない。
Event
インターフェースは、イベントに関するコンテキスト情報を、そのイベントを処理するハンドラに提供するために用いられる。
Event
インターフェースを実装するオブジェクトは、通常イベントハンドラの最初のパラメータとして渡される。より個別的なコンテキスト情報は、そのイベントのタイプに直接的に関係するコンテキスト情報を含んだ、Event
に追加のインターフェースを派生させたイベントハンドラに渡される。
それらの派生インターフェースもまた、イベントリスナーに渡されるオブジェクトによって実装される。
// DOM レベル 2で導入: interface Event { // PhaseType const unsigned short CAPTURING_PHASE = 1; const unsigned short AT_TARGET = 2; const unsigned short BUBBLING_PHASE = 3; readonly attribute DOMString type; readonly attribute EventTarget target; readonly attribute EventTarget currentTarget; readonly attribute unsigned short eventPhase; readonly attribute boolean bubbles; readonly attribute boolean cancelable; readonly attribute DOMTimeStamp timeStamp; void stopPropagation(); void preventDefault(); void initEvent(in DOMString eventTypeArg, in boolean canBubbleArg, in boolean cancelableArg); };
イベントフローのどのフェーズが処理されるかを表す整数。
AT_TARGET
EventTarget
で評価されている。BUBBLING_PHASE
CAPTURING_PHASE
bubbles
boolean
型 readonlycancelable
boolean
型 readonlycurrentTarget
EventTarget
型
readonlyEventListeners
が現在処理されているEventTarget
を表すために用いられる。
特に捕獲や浮上の途中では便利である。eventPhase
unsigned short
型 readonlytarget
EventTarget
型
readonlyEventTarget
を表すために用いられる。timeStamp
DOMTimeStamp
型 readonlytimeStamp
の値は全てのイベントについて適用できるわけではない。
利用できない場合は、値0が返る。エポック時間の例としては、システム開始時間や、1070年1月1日 0:0:0 UTC などがある。type
DOMString
型 readonlyinitEvent
initEvent
メソッドは
DocumentEvent
インターフェースを通して生成されたEvent
の値を初期化するために用いられる。
このメソッドは、Event
がdispatchEvent
を通して送出される前にのみ呼び出されて良い。ただ、そのフェーズの中で必要なときは複数回呼ばれてもよい。
もし複数回呼ばれた場合、最後の呼び出しが優先される。
もしinitEvent
メソッドで指定された値が変更されただけの
Event
インターフェースのサブクラスから呼び出された場合、その他全ての属性は変更されないまま残る。
eventTypeArg
DOMString
型canBubbleArg
boolean
型cancelableArg
boolean
型preventDefault
preventDefault
メソッドは、そのイベントがキャンセルされ、実装によって通常処理されるデフォルト動作がそのイベントの結果として発生しないことを指示するために用いられる。
ベントフローのどの状態であっても、preventDefault
メソッドが呼び出されれば、そのイベントはキャンセルされる。
そのイベントに関連付けられたいかなるデフォルト動作も発生しない。
キャンセル不可能なイベントに対するこのメソッドの呼び出しは効果を持たない。
いったんpreventDefault
が呼び出されると、これはそのイベントの伝播の残り全てに効果をもたらす。
このメソッドはイベントフローのどの段階でも用いられうる。
stopPropagation
stopPropagation
メソッドは
イベントフロー中でイベントのそれ以上の伝播を防止するために用いられる。
もしこのメソッドが何らかのEventListener
から呼び出された場合、
そのイベントはそのツリーを通しての伝播を中断する。
このイベントは
、イベントフローが停止する前に。現在のEventTarget
上の全てのリスナーに対して完全に送出される。
このメソッドはイベントフローのどの状態でも用いられうる。
イベント命令は、それらのメソッドの説明で指定された通りに
EventException
を投げうる。
// DOM レベル 2で導入: exception EventException { unsigned short code; }; // イベント例外コード const unsigned short UNSPECIFIED_EVENT_TYPE_ERR = 0;
生成されたエラーのタイプを表す整数。
UNSPECIFIED_EVENT_TYPE_ERR
Event
のタイプが、
このメソッドが呼び出される前に、イベントの初期化の時点までで指定されなかった場合。
イベントタイプのnull
や空文字列の指定もまたこの例外をトリガーする。DocumentEvent
インターフェースは、実装によってサポートされているタイプのイベントを、ユーザーが生成できるメカニズムを提供する。
DocumentEvent
インターフェースは、そのイベントモデルをサポートするようなDocument
を実装するオブジェクトと同一のものによって実装されることが期待されている。
// DOM レベル 2で導入: interface DocumentEvent { Event createEvent(in DOMString eventType) raises(DOMException); };
createEvent
eventType
DOMString
型eventType
パラメータは、生成される
Event
インターフェースのタイプを指定する。
もし指定されたEvent
インターフェースが
この実装によってサポートされているのであれば、このメソッドは要求されたインターフェースタイプの新しいEvent
を返す。
もしそのEvent
が
dispatchEvent
メソッドを通して送出される場合、適切なイベント初期化メソッドが、生成の後に呼び出され、Event
の値を初期化する。
例として、いくつかの種類のUIEvent
を統合したいユーザーは、createEvent
をパラメータ "UIEvents"付きで呼び出すであろう。
そして、initUIEvent
メソッドが新しく生成されたUIEvent
について呼び出され、特定のUIEventタイプが送出されるように設定し、またそのコンテキスト情報を設定する。createEvent
メソッドは、ユーザーがそれらのEvent
を生成する際に不便であるか不要である場合に、Event
を生成するときに用いられる。
実装が提供するEvent
が
足りない場合、ユーザーは、dispatchEvent
メソッドを用いる際に、自らのEvent
実装を用いても良い。
|
NOT_SUPPORTED_ERR:
この実装が要求された |
DOM レベル 2 イベントモデルは、DOMインプリメンテーションがイベントの複数モジュールをサポートすることを可能にしている。 このモデルは、必要に応じて新しいイベントモジュールを追加できるように設計された。 このDOMでは、可能な限りのイベントを定義しようとは試みていない。 互換性のために、このDOMでは、低レベルデバイス依存のイベントを含むユーザーインターフェースイベントのモジュール、UI論理イベントのモジュール、ドキュメントの変更イベントのモジュールを含む。 サードパーティが定義した新しいイベントタイプはいずれも大文字・小文字・混成を問わず先頭が文字列"DOM"で始まってはならない。 このプレフィックスは将来のDOMイベントモジュールのために予約されている。 また、サードパーティが追加した彼らのイベントには、彼ら自身のプレフィックスを用いて、他の新しいイベントとの混乱を回避し衝突の可能性を軽減することが強く推奨される。
ユーザーインターフェースイベントモジュールは、HTML 4.0 で列挙されるイベントと DOM Level 0 ブラウザでサポートされる追加イベントで編成されている。
DOMアプリケーションはDOMImplementation
インターフェースの
hasFeature(feature,
version)
メソッドを、パラメータ値 "UIEvents" と "2.0" (それぞれ)用いて
そのユーザーインターフェースイベントモジュールがその実装によってサポートされているかどうかを決定してもよい。
このモジュールを完全にサポートするためには、実装はこの仕様で定義されている"Events" featureと、DOM レベル 2 ビュー 仕様 [DOM Level 2 Views]で定義されている"Views" featureもサポートしなければならない。
適合性 に関する追加情報を、DOM レベル 2 コア 仕様 [DOM Level 2
Core]で参照して頂きたい。
備考: UIEvent
インターフェースのインスタンスを生成するためには、feature文字列"UIEvents"をDocumentEvent
インターフェースの createEvent
メソッドで用いられる入力パラメータの値として用いること。
UIEvent
インターフェースはユーザーインターフェースイベントに関連付けられた固有のコンテキスト情報を提供する。
// DOM レベル 2で導入: interface UIEvent : Event { readonly attribute views::AbstractView view; readonly attribute long detail; void initUIEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in views::AbstractView viewArg, in long detailArg); };
initUIEvent
initUIEvent
メソッドは、
DocumentEvent
インターフェースから生成されたUIEvent
の値を初期化するために用いられる。
このメソッドは
dispatchEvent
メソッドを通してUIEvent
が送出される前にのみ呼び出されるが、必要に応じてそのフェーズの中で複数回呼び出されてもよい。
もし複数回呼び出された場合、最後の呼び出しが優先される。
このイベントのタイプとして発生しうるものは:
EventTarget
がフォーカスを受け取った時に発生する。たとえばポインティングデバイスがこのエレメント上に移動してきたり、タブ操作がこのエレメントに辿り着いた場合である。HTMLイベントフォーカスとは異なり、DOMFocusIn はFORMコントロールに限らず、あらゆるフォーカス可能なEventTarget
に適用できる。
EventTarget
がフォーカスを喪失したときに発生する。
たとえばポインティングデバイスがエレメントの外に移動したり、タブ操作がそのエレメントから外れた場合である。
HTMLのイベント消失とは異なり、DOMFocusOutはFORMコントロールに限らず、あらゆるフォーカス可能なEventTarget
に適用できる。
マウスイベントモジュールは、 HTML 4.0で列挙されるイベントと DOM Level 0 ブラウザでサポートされる追加イベントで編成される。 このイベントモジュールは特にマウス入力デバイスで用いるために設計されている。
DOMアプリケーションはDOMImplementation
インターフェースの
hasFeature(feature,
version)
メソッドを、パラメータ値 "MouseEvents" と "2.0" (それぞれ)用いて
そのユーザーインターフェースイベントモジュールがその実装によってサポートされているかどうかを決定してもよい。
このモジュールを完全にサポートするためには、実装はこの仕様で定義されている"UIEvents" featureもサポートしなければならない。
適合性 に関する追加情報を、DOM レベル 2 コア 仕様 [DOM Level 2
Core]で参照して頂きたい。
備考: MouseEvent
インターフェースのインスタンスを生成するためには、feature文字列"MouseEvents"をDocumentEvent
インターフェースの createEvent
メソッドで用いられる入力パラメータの値として用いること。
MouseEvent
インターフェースは、マウスイベントに関連付けられた固有のコンテキスト情報を提供する。
UIEvent
から継承したdetail
属性は、1回のユーザーアクション中に同じ画面位置でマウスボタンが何回押下され解放されたかを表す。ユーザーがこのアクションを開始した時のこの属性値は1であり、一連の押下と解放の度に1ずつ増加する。
もしユーザーがマウスをマウスダウンとマウスアップ中に移動した場合、この値は0にセットされ、クリックは発生しなかったことになる。
ネストしたエレメントの場合は、マウスイベントは常に最も深くネストしたエレメントにターゲットされる。ターゲットされたエレメントの祖先は、その子孫エレメントで発生したマウスイベントの通知を、浮上を用いて取得することができる。
// DOM レベル 2で導入: interface MouseEvent : UIEvent { readonly attribute long screenX; readonly attribute long screenY; readonly attribute long clientX; readonly attribute long clientY; readonly attribute boolean ctrlKey; readonly attribute boolean shiftKey; readonly attribute boolean altKey; readonly attribute boolean metaKey; readonly attribute unsigned short button; readonly attribute EventTarget relatedTarget; void initMouseEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in views::AbstractView viewArg, in long detailArg, in long screenXArg, in long screenYArg, in long clientXArg, in long clientYArg, in boolean ctrlKeyArg, in boolean altKeyArg, in boolean shiftKeyArg, in boolean metaKeyArg, in unsigned short buttonArg, in EventTarget relatedTargetArg); };
altKey
boolean
型 readonlybutton
unsigned short
型 readonlybutton
は、マウスボタンの押下あるいは解放によって発生したマウスイベントの間、
どのマウスボタンが状態を変更したかを示すために用いられる。
button
の値の範囲は、左ボタンを表す0、存在する場合は中央のボタンを表す1、そして右ボタンを表す2である。左利き用に調整されてボタンアクションが逆になっているマウスについては、このようにはせず、右から左にこの値が設定される。clientX
long
型 readonlyclientY
long
型 readonlyctrlKey
boolean
型 readonlymetaKey
boolean
型 readonlyrelatedTarget
EventTarget
型
readonlyEventTarget
を識別するために用いられる。
この属性は現在は、
そのEventTarget
からポインティングデバイスが外れた時を指定するmouseoverイベントと、
そのEventTarget
からポインティングデバイスが入った時を指定するmouseoutイベントで
用いられる。screenX
long
型 readonlyscreenY
long
型 readonlyshiftKey
boolean
型 readonlyinitMouseEvent
initMouseEvent
メソッドは
DocumentEvent
インターフェースから生成されたMouseEvent
の値を初期化するために用いられる。
このメソッドは
dispatchEvent
メソッドを通してMouseEvent
が送出される前にのみ呼び出されるが、必要に応じてこのフェーズ中で複数回呼び出されてもよい。
もし複数回呼び出された場合、最後の呼び出しが優先される。
typeArg
DOMString
型canBubbleArg
boolean
型cancelableArg
boolean
型viewArg
views::AbstractView
型Event
の
AbstractView
を表す。detailArg
long
型Event
のマウスクリック回数を表す。screenXArg
long
型Event
のスクリーンx座標を表す。
screenYArg
long
型Event
のスクリーンy座標を表す。
clientXArg
long
型Event
のクライアントx座標を表す。
clientYArg
long
型Event
のクライアントy座標を表す。
ctrlKeyArg
boolean
型Event
の間コントロールキーが押されていたかどうかを表す。altKeyArg
boolean
型Event
の間altキーが押されていたかどうかを表す。shiftKeyArg
boolean
型Event
の間shiftキーが押されていたかどうかを表す。metaKeyArg
boolean
型Event
の間metaキーが押されていたかどうかを表す。buttonArg
unsigned short
型Event
のマウスボタンを表す。relatedTargetArg
EventTarget
型Event
に関連付けられたEventTarget
を表す。このイベントのタイプとして発生しうるものは:
mousedown mouseup click
detail
属性を増やし続ける。このイベントはほとんどのエレメントで有効である。
EventTarget
the pointing device is exiting.EventTarget
the pointing device is entering.DOM レベル 2 イベント 仕様では、キーイベントモジュールを提供しない。 キーボード入力デバイスで用いるように設計されるイベントモジュールは、DOM仕様の以降のバージョンに含まれることになろう。
変更イベントモジュールは、属性やテキストも含む、ドキュメントの構造のあらゆる変化を通知することを可能にするよう設計されている。 ここで列挙する変更イベントのいずれも、キャンセル不可として設計されていることに注意してほしい。 これは、既存のDOMインターフェースが、何らかの変更がドキュメントにあったかどうかで、関連付けられたイベントのキャンセルに従ってドキュメントを変更することは、非常に困難であるという事実による。 望ましい機能ではあるが、DOMに対するトランザクションの追加まで残しておく方が良いという判断になった。
ツリーの単一の変更の多くは、複数の変更イベントを発動しうる。 そのツリー上で可能な変更の全てに対応する変更イベントについて、並べ替えを指定するようには試みられなかった。むしろこれらのイベントの並べ替えは実装に依存されることになった。
DOMアプリケーションはDOMImplementation
インターフェースの
hasFeature(feature,
version)
メソッドを、パラメータ値 "MutationEvents" と "2.0" (それぞれ)用いて
そのユーザーインターフェースイベントモジュールがその実装によってサポートされているかどうかを決定してもよい。
このモジュールを完全にサポートするためには、実装はこの仕様で定義されている"Events" featureもサポートしなければならない。
適合性 に関する追加情報を、DOM レベル 2 コア 仕様 [DOM Level 2
Core]で参照して頂きたい。
備考: MutationEvent
インターフェースのインスタンスを生成するためには、feature文字列"MutationEvents"をDocumentEvent
インターフェースの createEvent
メソッドで用いられる入力パラメータの値として用いること。
MutationEvent
インターフェースは変更イベントに関連付けられた固有のコンテキスト情報を提供する。
// DOM レベル 2で導入: interface MutationEvent : Event { // attrChangeType const unsigned short MODIFICATION = 1; const unsigned short ADDITION = 2; const unsigned short REMOVAL = 3; readonly attribute Node relatedNode; readonly attribute DOMString prevValue; readonly attribute DOMString newValue; readonly attribute DOMString attrName; readonly attribute unsigned short attrChange; void initMutationEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in Node relatedNodeArg, in DOMString prevValueArg, in DOMString newValueArg, in DOMString attrNameArg, in unsigned short attrChangeArg); };
どのような方法でAttr
が変更されたかを表す整数。
ADDITION
Attr
は単純に追加されたものである。MODIFICATION
Attr
は置き換えられて変更されたものである。REMOVAL
Attr
は単純に削除されたものである。attrChange
unsigned short
型 readonlyattrChange
は、DOMAttrModified イベントをトリガーした変更の種類を示す。値として可能なのは
MODIFICATION
、ADDITION
、
REMOVAL
のいずれかである。attrName
DOMString
型 readonlyattrName
DOMAttrModified イベントで変更された
Attr
ノードの名前を示す。newValue
DOMString
型 readonlynewValue
はDOMAttrModified イベントでのAttr
ノードの新しい値、あるいはDOMCharDataModifiedイベントでのCharacterData
ノードの新しい値を示す。prevValue
DOMString
型 readonlynewValue
はDOMAttrModified イベントでのAttr
ノードの以前の値、あるいはDOMCharDataModifiedイベントでのCharacterData
ノードの以前の値を示す。relatedNode
Node
型 readonlyrelatedNode
は変更イベントに関連付けられた次の(secondary)ノードを識別するために用いられる。
たとえば、もしあるノードに親が変化したという変更イベントが送出されたら、その
relatedNode
とは変化した親である。
もしそうではなく、あるサブツリーにその内部で変化があったというイベントが送出されたら、そのrelatedNode
とは変化したノードである。
DOMAttrModified イベントの場合は、変更された、あるいは追加された、あるいは削除されたAttr
ノードを示す。
initMutationEvent
initMutationEvent
メソッドは、
DocumentEvent
インターフェースから生成されたMutationEvent
の値を初期化するために用いられる。
このメソッドは、dispatchEvent
メソッドを通してMutationEvent
が送出されるより前にのみ呼び出されるが、必要に応じてこのフェーズ中で複数回呼び出されてもよい。
もし複数回呼び出された場合、最後の呼び出しが優先される。
typeArg
DOMString
型canBubbleArg
boolean
型cancelableArg
boolean
型relatedNodeArg
Node
Event
の関連ノードを表す。prevValueArg
DOMString
型Event
の
prevValue
属性を表す。この値はnullである可能性がある。newValueArg
DOMString
型Event
の
newValue
属性を表す。この値はnullである可能性がある。attrNameArg
DOMString
型Event
の
attrName
属性を表す。この値はnullである可能性がある。attrChangeArg
unsigned short
型Event
の
attrChange
属性を表す。変化イベントとして発生しうるタイプは:
Attr
がノード上で変更された後で発動される。
このイベントのターゲットは、Attr
が変更された
Node
である。
attrChangeの値は、Attr
が変更されたか、追加されたか、削除されたかを示す。
relatedNodeの値は、その値に影響を与えたAttr
ノードを示す。
文字列ベースのAttr
の値の置換は、その属性の一意性には変化がないため、Attr
の変更とみなされることが期待されている。
そして、Attr
ノードの他のAttr
への置換は、最初のAttr
ノードの削除であり、次のノードの追加であるとみなされる。
HTML イベントモジュールはHTML 4.0で列挙されているイベントと、 DOM Level 0 ブラウザでサポートされる追加イベントで編成される。
DOMアプリケーションはDOMImplementation
インターフェースの
hasFeature(feature,
version)
メソッドを、パラメータ値 "HTMLEvents" と "2.0" (それぞれ)用いて
そのユーザーインターフェースイベントモジュールがその実装によってサポートされているかどうかを決定してもよい。
このモジュールを完全にサポートするためには、実装はこの仕様で定義されている"Events" featureもサポートしなければならない。
適合性 に関する追加情報を、DOM レベル 2 コア 仕様 [DOM Level 2
Core]で参照して頂きたい。
備考: Event
インターフェースのインスタンスを生成するためには、feature文字列"HTMLEvents"をDocumentEvent
インターフェースの createEvent
メソッドで用いられる入力パラメータの値として用いること。
HTML イベントはベースとなるDOM Eventインターフェースを、コンテキスト情報を渡すために用いる。
このイベントとして発生しうるタイプは: