我有一个iFrame正在触发一个我希望父页面可以拾取的事件。基本上the inverse of this question。我可以在iFrame中拾取事件,所以我知道它正在触发,但父母没有任何事情发生。
我正在使用YUI 3,因此任何基于此的答案都会得到双重赞许,但所有帮助都得到了很好的接受。
由于
罗布
答案 0 :(得分:4)
显然,事件不会跨帧传播。以下是我如何解决这个问题:
在父框架中定义此全局函数:
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
});