このドキュメントは以下で説明する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);
};
addEventListenerEventListener
がEventTargetに追加されたら、それがイベントを処理している間は、それはカレントアクションによってはトリガーされないが、そのイベントフローの以降のステージ、たとえば浮上のフェーズなどではトリガーされうる。EventListener
が同一のEventTargetに、同一のパラメータで登録された場合、その複製インスタンスは破棄される。
それらが EventListener
を2回呼ばれることはないし、破棄されているためremoveEventListener メソッドで削除する必要もない。
type
DOMString型listener
EventListener型listener パラメータは、イベント発生時に呼び出されるメソッドを含む、ユーザーによって実装されたインターフェースを取る。useCapture
boolean型useCapture はユーザーが捕獲を開始(initiate)したいことを表す。捕獲の開始後は、指定されたタイプの全てのイベントが、
下方のEventTargetsに送出されるより前に、
ここで登録されたEventListenerに送出される。
ツリー上で浮上中のイベントは、捕獲を用いるよう設計されたEventListener
をトリガーしない。dispatchEventdispatchEventが呼ばれた
EventTargetである。
evt
Event型|
|
|
removeEventListenerEventListener
が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_TARGETEventTargetで評価されている。BUBBLING_PHASECAPTURING_PHASEbubbles
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型 readonlyinitEventinitEvent メソッドは
DocumentEvent
インターフェースを通して生成されたEventの値を初期化するために用いられる。
このメソッドは、EventがdispatchEventを通して送出される前にのみ呼び出されて良い。ただ、そのフェーズの中で必要なときは複数回呼ばれてもよい。
もし複数回呼ばれた場合、最後の呼び出しが優先される。
もしinitEventメソッドで指定された値が変更されただけの
Eventインターフェースのサブクラスから呼び出された場合、その他全ての属性は変更されないまま残る。
eventTypeArg
DOMString型canBubbleArg
boolean型cancelableArg
boolean型preventDefaultpreventDefault メソッドは、そのイベントがキャンセルされ、実装によって通常処理されるデフォルト動作がそのイベントの結果として発生しないことを指示するために用いられる。
ベントフローのどの状態であっても、preventDefaultメソッドが呼び出されれば、そのイベントはキャンセルされる。
そのイベントに関連付けられたいかなるデフォルト動作も発生しない。
キャンセル不可能なイベントに対するこのメソッドの呼び出しは効果を持たない。
いったんpreventDefault が呼び出されると、これはそのイベントの伝播の残り全てに効果をもたらす。
このメソッドはイベントフローのどの段階でも用いられうる。
stopPropagationstopPropagation メソッドは
イベントフロー中でイベントのそれ以上の伝播を防止するために用いられる。
もしこのメソッドが何らかのEventListenerから呼び出された場合、
そのイベントはそのツリーを通しての伝播を中断する。
このイベントは
、イベントフローが停止する前に。現在のEventTarget
上の全てのリスナーに対して完全に送出される。
このメソッドはイベントフローのどの状態でも用いられうる。
イベント命令は、それらのメソッドの説明で指定された通りに
EventException
を投げうる。
// DOM レベル 2で導入:
exception EventException {
unsigned short code;
};
// イベント例外コード
const unsigned short UNSPECIFIED_EVENT_TYPE_ERR = 0;
生成されたエラーのタイプを表す整数。
UNSPECIFIED_EVENT_TYPE_ERREventのタイプが、
このメソッドが呼び出される前に、イベントの初期化の時点までで指定されなかった場合。
イベントタイプのnullや空文字列の指定もまたこの例外をトリガーする。DocumentEvent インターフェースは、実装によってサポートされているタイプのイベントを、ユーザーが生成できるメカニズムを提供する。
DocumentEventインターフェースは、そのイベントモデルをサポートするようなDocumentを実装するオブジェクトと同一のものによって実装されることが期待されている。
// DOM レベル 2で導入:
interface DocumentEvent {
Event createEvent(in DOMString eventType)
raises(DOMException);
};
createEventeventType
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);
};
initUIEventinitUIEvent メソッドは、
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型 readonlyinitMouseEventinitMouseEvent メソッドは
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 が変更されたかを表す整数。
ADDITIONAttr は単純に追加されたものである。MODIFICATIONAttr は置き換えられて変更されたものである。REMOVALAttr は単純に削除されたものである。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 ノードを示す。
initMutationEventinitMutationEvent メソッドは、
DocumentEvent
インターフェースから生成されたMutationEventの値を初期化するために用いられる。
このメソッドは、dispatchEvent
メソッドを通してMutationEventが送出されるより前にのみ呼び出されるが、必要に応じてこのフェーズ中で複数回呼び出されてもよい。
もし複数回呼び出された場合、最後の呼び出しが優先される。
typeArg
DOMString型canBubbleArg
boolean型cancelableArg
boolean型relatedNodeArg
NodeEventの関連ノードを表す。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インターフェースを、コンテキスト情報を渡すために用いる。
このイベントとして発生しうるタイプは: