是否有可能一个事件侦听器添加到一个iframe? 我试过这个代码,但它似乎没有工作时:
document.getElementsByTagName('iframe')[0].contentWindow.window.document.body.addEventListener('afterLayout', function(){
console.log('works');
});
我也只是使用ID获取元素,并通过JavaScript框架我使用,像这样将我的听众尝试:
Ext.fly("iframeID").addListener('afterLayout', function(){ alert('test'); });
我可以调用在iframe的功能,所以我不认为安全是一个问题。 有任何想法吗?
我从来没有试图处理“afterLayout”事件,但更多的浏览器兼容的代码,你将使用( iframe.contentWindow || iframe.contentDocument
),而不是iframe.contentWindow
。
尝试类似
var iframe = document.getElementsByTagName('iframe')[0],
iDoc = iframe.contentWindow // sometimes glamorous naming of variable
|| iframe.contentDocument; // makes your code working :)
if (iDoc.document) {
iDoc = iDoc.document;
iDoc.body.addEventListener('afterLayout', function(){
console.log('works');
});
};
希望能对大家有所帮助。
如果你正在做的内线严重的iframe的工作,你应该看看ManagedIFrame用户分机:
http://www.extjs.com/forum/showthread.php?t=40961
它具有内置事件和跨框架消息,以及其他许多好处。