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';