親ページに取得させたいイベントを発生させる iFrame があります。本質的にこの質問の逆です。iFrame 内でイベントを取得できるので、イベントが発生していることはわかっていますが、親では何も起こりません。
私は YUI 3 を使用しているので、これに基づく回答はすべて高く評価されますが、すべての助けに感謝します。
親ページに取得させたいイベントを発生させる iFrame があります。本質的にこの質問の逆です。iFrame 内でイベントを取得できるので、イベントが発生していることはわかっていますが、親では何も起こりません。
私は YUI 3 を使用しているので、これに基づく回答はすべて高く評価されますが、すべての助けに感謝します。
どうやらイベントはフレーム間で伝播しません。これが私がそれを回避する方法です:
親フレームで、次のグローバル関数を定義します。
var fireGlobalEvent = function (e, param) {
YUI().use('event-custom', function (Y) {
var publisher = new Y.EventTarget();
publisher.publish(e, {
broadcast: 2, // global notification
emitFacade: true // emit a facade so we get the event target
}).fire(param);
});
};
次に、子でこれを呼び出して、親でイベントをトリガーします。
window.parent.fireGlobalEvent('my_custom_global_event', 'an_extra_param');
次に、イベントは次の親モジュールによってキャッチされます。
Y.Global.on('my_custom_global_event', function (e, param) {
// do something
});