CustomEvent

この記事は技術レビューを必要としています。ぜひご協力ください

この記事は編集レビューを必要としています。ぜひご協力ください

CustomEvent インターフェースはどんな目的のアプリケーションからも初期化されるイベントを表現します。

註: This feature is available in Web Workers.

コンストラクタ

CustomEvent()
CustomEventを生成します。

プロパティ

このインタフェースは親のプロパティを引き継ぎます、Event

CustomEvent.detail 読取専用
イベント初期化時にどんなデータでも受け渡すことができます。

関数

このインターフェースは親の関数を引き継ぎます、Event.

CustomEvent.initCustomEvent()

CustomEventオブジェクトを初期化します。もし該当イベントがすでに移譲されたことがある場合、この関数は何もしません。

仕様

仕様 ステータス コメント
DOM
CustomEvent の定義
現行の標準 初版の仕様

ブラウザの互換性

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート (有) 6 9 11 5.1 (533.3)
CustomEvent() コンストラクタ 15 11 未サポート 11.60 Nightly build (535.2)
ワーカー内部で利用可能 (有) 48 (48) (有) (有) (有)
機能 Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
基本サポート ? ? ? ? ?
ワーカー内部で利用可能 (有) 48.0 (48) (有) (有) (有)

特権を持つコードから持たないコードへのイベント発行

CustomEventを特権を持つコード(例: エクステンション)から持たないコード(例: ウェブページ)へ発行する時、セキュリティの問題を考慮すべきです。Firefoxと他のGeckoアプリケーションは、自動的にセキュリティホールを防ぐ為、他者から直接利用される1つのコンテキスト内で作られるオブジェクトを制限します。しかし、この制限によりコードが期待した通りに動作しない可能性があります。

CustomEentオブジェクトが作られている間、同じwindowからオブジェクトを作る必要があります。作られたCustomEventのdetail属性は同じ制限の影響を受けるでしょう。制限のないコンテンツからはStringと配列の値は読み込み可能ですが、カスタムオブジェクトは読み込めません。カスタムオブジェクトを使用している間、Components.utils.cloneInto()を使ってコンテンツのスクリプトから読み込み可能なオブジェクトの属性を定義する必要があるでしょう。

// docはコンテンツのドキュメントの参照
function dispatchCustomEvent(doc) {
  var eventDetail = Components.utils.cloneInto({foo: 'bar'}, doc.defaultView);
  var myEvent = doc.defaultView.CustomEvent("mytype", eventDetail);
  doc.dispatchEvent(myEvent);
}

しかし、1つ覚えておいて欲しいことは、関数をエクスポートすると、Chromeの特権上でのコンテンツスクリプトの実行を許可することになり、脆弱性となる可能性があります。

参照

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

 このページの貢献者: mikamikuh
 最終更新者: mikamikuh,