javascript - 将子 iframe 中的事件附加到父窗口中的处理程序

标签 javascript jquery html events 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 中的 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/

相关文章:

html - rel ="bookmark"链接属性是什么意思?

android - 微软头像颜色分配

javascript - 有没有办法正确模拟单元测试的重新选择选择器?

javascript - 如何为所有浏览器设置 iFrame 内容的高度?

javascript - 如何在 Angular 7 中使用 JavaScript 代码?

php - 如何在用户登录时使用 PHP session 显示隐藏内容

javascript - 如何在 JavaScript 中切换 chop 文本?

javascript - 无法通过背景单击关闭自定义 UI Bootstrap 模式

javascript - Require.js 错误随机加载资源失败

javascript - JS Fetch API - 如果默认情况下 fetch 不会从服务器发送或接收任何 cookie,我什么时候应该使用值为 "omit"的凭据选项?