Запуск событий между iframe и его родителем с использованием YUI

У меня есть iFrame, который запускает событие, которое я хочу получить на родительской странице. По существу обратный вопрос. Я могу получить событие внутри iFrame, поэтому я знаю, что оно срабатывает, но в родительском элементе ничего не происходит.

Я использую YUI 3, поэтому любые ответы, основанные на этом, получают двойное одобрение, но вся помощь принимается с благодарностью.

Спасибо

Роб


person Rob Waring    schedule 28.09.2010    source источник
comment
Отчаянно ищу: ответ именно на этот вопрос. Удалось ли вам продвинуться? Я нашел это: stackoverflow.com/questions/ 4601325/   -  person danjah    schedule 05.02.2011


Ответы (1)


По-видимому, события не распространяются по кадрам. Вот как я работаю над этим:

В родительском фрейме определите эту глобальную функцию:

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
    });
person mjhm    schedule 01.04.2011