document.createEvent

概要

指定されたタイプの イベント を作成します。返されるオブジェクトは初めに初期化する必要があり、その後で 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 でイベントタイプの名前が単数形に変わったものの、後方互換性のため古い複数形の名前にも対応しているためです。

仕様書

ドキュメントのタグと貢献者

Contributors to this page: fscholz, jsx, ethertank, Yukoba, Kohei
最終更新者: jsx,
サイドバーを隠す