Déclencher les événements dans la fenêtre parent de l'iframe

Pourquoi les éléments suivants ne fonctionnent-ils pas:

//iframe: window.parent.$(document).trigger('complete'); //parent window: $(document).bind('complete', function(){ alert('Complete'); }); 

Alors que le suivant fonctionne:

 //iframe: window.parent.$('body').trigger('complete'); //parent window: $('body').bind('complete', function(){ alert('Complete'); }); 

?

La façon dont les événements sont suivis, vous ne pouvez déclencher ou recevoir que des événements sur le même document.

essayer

 window.parent.$(window.parent.document).trigger('complete'); 

Vous pouvez essayer d'ajouter une fonction de déclenchement dans le document parent, puis l'appeler comme une fonction régulière à partir de l'iframe. Cela devrait vous assurer que vous déclenchez l'événement dans le bon contexte du document.

 // In Parent function triggerComplete () { $(document).trigger('complete'); } // In iFrame window.parent.triggerComplete(); 

Selon la validation et le type de navigateur, vous avez parfois besoin d'un document.documentElement pour naviguer autour d'un DOM.

La fonction $('body') saute probablement directement sur le corps, tandis que le $(document) réfère uniquement au parent du document, sans inclure la propriété .documentElement .

Vérifiez cette solution, c'est très délicat

Top.frames ['frame_name']. Document.getElementById ('Traitement'). Style.display = 'none';