我无法直接访问此 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 中的 Document 对象。请注意,在一个文档中使用 jQuery 库来操作另一个文档通常会出现问题,通常应避免这样做。但是,在绑定(bind)事件的情况下它确实有效。
$('[name=temp_iframe]').contents().find('button').click(function() {
alert('click');
});
这需要加载 iframe 及其内容,因此如有必要,请在 $(window).load()
处理程序中执行此操作。您不能跨文档live
/delegate
,因为事件不会从子文档传播到其父文档。
关于javascript - 将子 iframe 中的事件附加到父窗口中的处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672726/