将子iframe中的事件附加到父窗口中的处理程序
我无法直接访问此iframe的源,因此,如果可能的话,我想这样做。
我有一个由JS生成的iframe:
<iframe name="temp_iframe" width="100%" height="95%" src="'+the_url+'"></iframe>
里面是一个提交按钮和一个取消按钮。提交按钮可以正常工作,但是我希望取消按钮关闭包含iframe的模式…我也希望发送提交按钮, 然后
关闭模式。通常这很容易,但是我不确定如何在父窗口中为iframe的子DOM元素设置一个事件,该事件会影响孩子的父窗口(主窗口)。
例如,如果这不在iframe和jQuery中:
$('[name=temp_iframe] button').live('click',function(){ alert('click');
return false;
});
编辑:而且,它在同一个域!
回答:
使用contents()
访问文档对象的iframe内。请注意,在一个文档中使用jQuery库来操作另一个文档通常会出现问题,通常应避免使用。但是,对于绑定事件,它确实起作用。
$('[name=temp_iframe]').contents().find('button').click(function() { alert('click');
});
这需要加载iframe及其内容,因此$(window).load()
如有必要,请在处理程序中进行加载。您不能live
/
delegate
跨文档,因为事件不会从子文档传播到其父文档。
以上是 将子iframe中的事件附加到父窗口中的处理程序 的全部内容, 来源链接: utcz.com/qa/421905.html