概要
指定されたタイプの イベント を作成します。返されるオブジェクトは初めに初期化する必要があり、その後で element.dispatchEvent へ渡すことができます。
構文
var event = document.createEvent(type);
event
は作成された Event オブジェクトです。type
は作成するイベントタイプを表す文字列です。取り得るイベントタイプは、"UIEvents"
、"MouseEvents"
、"MutationEvents"
、"HTMLEvents"
のいずれかです。詳しくは 注意点 の項目を参照してください。
例
次の例では DOM メソッドを使用してチェックボックスのクリックをシミュレート(※スクリプトでクリックイベントを生成)しています。
function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } }
注意点
createEvent
に渡すのに適したイベントタイプを表す文字列は イベントモジュール で定義されています。イベントモジュールは、DOM Events 仕様書で定義されているものと、その他の仕様書 (SVG など) で定義されているものがあり、またイベントタイプの一部は Gecko 専用です。詳細は以下の表を参照してください。
To-do: テーブルにイベント名も追加すること
イベントモジュール | createEvent に渡すイベントタイプ |
イベントの初期化に使われるメソッド |
---|---|---|
DOM Level 2 Events | ||
ユーザインタフェースイベントモジュール | "UIEvents" |
event.initUIEvent |
マウスイベントモジュール | "MouseEvents" |
event.initMouseEvent |
変異イベントモジュール | "MutationEvents" |
event.initMutationEvent |
HTML イベントモジュール | "HTMLEvents" |
event.initEvent |
DOM Level 3 Events | ||
ユーザインタフェースイベントモジュール | "UIEvent" 、"UIEvents" |
event.initUIEvent |
マウスイベントモジュール | "MouseEvent" 、"MouseEvents" |
event.initMouseEvent |
変異イベントモジュール | "MutationEvent" 、"MutationEvents" |
event.initMutationEvent |
変異名前イベントモジュール (2006 年 6 月時点では Gecko に実装されていません) | "MutationNameEvent" |
event.initMutationNameEvent |
テキストイベントモジュール | "TextEvent" (Gecko は "TextEvents" にも対応しています) |
event.initTextEvent |
キーボードイベントモジュール | "KeyboardEvent" (Gecko は "KeyEvents" にも対応しています) |
event.initKeyEvent (Gecko 専用。DOM 3 Events 作業草案では、代わりに initKeyboardEvent が使われています) |
カスタムイベントモジュール | "CustomEvent" |
event.initCustomEvent |
基本イベントモジュール | "Event" (Gecko は "Events" にも対応しています) |
event.initEvent |
SVG 1.1 Scripting | ||
SVG | "SVGEvents" (Gecko は "SVGEvent" にも対応しています) |
event.initEvent |
"SVGZoomEvents" (Gecko は "SVGZoomEvent" にも対応しています) |
event.initUIEvent | |
Gecko が対応しているその他のイベントタイプ Gecko-related information is taken from nsEventDispatcher::CreateEvent code - see lxr.m.o | ||
- | "MessageEvent" |
event.initMessageEvent |
"MouseScrollEvents" 、"PopupEvents" |
event.initMouseEvent | |
"PopupBlockedEvents" |
event.initPopupBlockedEvent | |
"XULCommandEvent" 、"XULCommandEvents" |
event.initCommandEvent |
一部のイベントが 2 つのイベントタイプのいずれを使っても作成できる理由は、DOM Level 3 Events でイベントタイプの名前が単数形に変わったものの、後方互換性のため古い複数形の名前にも対応しているためです。