Ajouter un écouteur d'événement pour un iframe
Est-il possible d'ajouter un écouteur d'événement à un iframe? J'ai essayé ce code mais il ne semble pas fonctionner:
document.getElementsByTagName('iframe')[0].contentWindow.window.document.body.addEventListener('afterLayout', function(){
console.log('works');
});
Aussi, je l'ai juste essayé, à l'aide de l'élément par son id et l'ajout de mon port d'écoute via le framework JavaScript que j'utilise, comme ceci:
Ext.fly("iframeID").addListener('afterLayout', function(){ alert('test'); });
Je peux appeler des fonctions dans l'iframe, donc je ne pense pas que la sécurité est un problème. Des idées?
Qu'est-ce exactement feux "afterLayout" événement?
OriginalL'auteur Ronald | 2009-09-08
Vous devez vous connecter pour publier un commentaire.
Je n'ai jamais essayé de manipuler 'afterLayout' événement, mais pour plus de navigateur compatible code
vous allez utiliser (
iframe.contentWindow || iframe.contentDocument
) au lieu deiframe.contentWindow
.essayer quelque chose comme
Espère que ça vous aidera.
OriginalL'auteur Mushex Antaranian
Si vous faites grave iframe travail en Ext, vous devriez regarder dans le ManagedIFrame extension d'utilisateur:
http://www.extjs.com/forum/showthread.php?t=40961
Il est doté d'une fonction des événements et de la croix-cadre de la messagerie, ainsi que de nombreux autres avantages.
OriginalL'auteur Brian Moeskau
Raisons de l'échec pourrait être:-
Je pense que la "charge" est l'un des rares événements vous pouvez écouter pour le début de l' - presque par définition, puisque vous ne pouvez pas correctement attendre jusqu'à ce que le chargement se fait sans l'attachement d'une "charge" auditeur plus tôt!!! J'ai trouvé que si vous écrivez le contenu de l'iframe par programme (par exemple, via
srcdoc
) vous toujours à attendre la "charge" de l'événement (ou jQueryload()
) avant de fixer d'autres écouteurs d'événement va travailler.OriginalL'auteur AnthonyWJones