2010-09-28 4 views
4

J'ai un iFrame qui déclenche un événement que je veux que la page parente prenne. Essentiellement the inverse of this question. Je peux ramasser l'événement à l'intérieur de l'iFrame, donc je sais qu'il se déclenche, mais rien ne se passe dans le parent. J'utilise YUI 3 afin que toutes les réponses basées autour de ceci obtiennent un double-pouce vers le haut, mais toute l'aide est admirablement reçue.Tirer des événements entre un iframe et son parent en utilisant YUI

Merci

Rob

+0

recherche Désespérément: une réponse à cette question précise. Avez-vous fait des progrès? J'ai trouvé ceci: http://stackoverflow.com/questions/4601325/trigger-events-in-iframes-parent-window – danjah

Répondre

4

Apparemment, les événements ne se propagent pas dans toutes les images. Voilà comment je travaille autour:

Dans le cadre parent définit cette fonction globale:

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); 
    }); 
}; 

Ensuite, il suffit d'appeler cela dans l'enfant pour déclencher l'événement dans le parent.

window.parent.fireGlobalEvent('my_custom_global_event', 'an_extra_param'); 

l'événement est pris par des modules parents avec:

Y.Global.on('my_custom_global_event', function (e, param) { 
     // do something 
    }); 
Questions connexes