绑定到动态创建的iframe内的事件

我需要绑定到用户执行特定操作后动态创建的iframe内的事件(比如click任意 )。 在iframe中附加iframe和代码的代码不是我的,我无法以任何方式更改它(这是一个CMS管理面板)。

如何使用jQuery 1.6来监听事件(再次,这不是我的选择,我坚持使用它)。 我认为delegate()可能是我想要的:

 $('body').delegate('iframe input', 'click', function(e) { alert('bingo?'); }); 

但是,当点击输入时,上述内容不会发出警报。 但是,下面的内容符合预期:

 $('body').delegate('input', 'click', function(e) { alert('bingo?'); }); 

但这不在iframe之内。

显然, iframesrc指向同一个域。

非常感谢任何帮助或只是正确方向的刺激。

'iframe input'不会选择iframe input元素。

你可以像这样绑定事件

 $('body iframe').contents().find('input').bind('click',function(e) { alert('bingo?'); }); 

我想你也可以使用类似的东西

 $('body iframe').contents().find('body').delegate('input','click',function(e) { alert('bingo?'); }); 

要检测iframe是否已完全加载,请使用此答案中描述的方法https://stackoverflow.com/a/5788723/344304

添加在主/父文档中:

 function iframeLoaded() { $('body iframe').contents().find('input').bind('click',function(e) { alert('bingo?'); }); } 

添加iframe文档:

 window.onload = function() { parent.iframeLoaded(); } 

或者使用

 $('body iframe').load(function(){ $('body iframe').contents().find('input').bind('click',function(e) { alert('bingo?'); }); });