单击 iframe 中的按钮 > 在父窗口中隐藏 div

Posted

技术标签:

【中文标题】单击 iframe 中的按钮 > 在父窗口中隐藏 div【英文标题】:clicking button within iframe > hide div in parent window 【发布时间】:2014-03-23 07:04:45 【问题描述】:

我在 iframe(与引荐来源网址相同的域)中的按钮上获取点击事件并使其关闭(在本例中)父窗口中的 2 个 div 时遇到问题。

主页的示例 html:

<div class="wrapper">
    <iframe src="foo"></iframe>
</div>
<div class="bg"></div>

iframe 的示例 html:

<div class="btn_wrapper">
    <a href="http://www.foobar.com" class="yes">Yes</a>
    <a class="no">No</a>
</div>

JS:

// redirect
$('body').on('click', '.btn_wrapper .yes', function() 
    window.top.location = 'http://www.foobar.com';
);

// hide iframe popup wrapper and bg
$('body').on('click', '.btn_wrapper .no', function() 
    $('.wrapper').fadeOut(250, function() 
        $('.bg').fadeOut(150);
    );
);

$('body').on('click'... 函数确实运行成功,因为单击“是”按钮会重定向,在我的完整代码中,单击“否”以设置 cookie,它确实如此。

由于某种原因,它只是不隐藏包含 iframe 和背景覆盖的 .wrapper。我怎样才能做到这一点?

对于我正在构建的东西,我不必严格使用 iframe,但是为了与已有功能的一致性和集成,我真的很想继续使用 iframe。

【问题讨论】:

【参考方案1】:

试试:

$('body').on('click', '.btn_wrapper .no', function() 
    $('.wrapper', window.parent.document).fadeOut(250, function() 
        $('.bg', window.parent.document).fadeOut(150);
    );
);

【讨论】:

这似乎对我有用 - 我最初遇到了一些不寻常的缓存问题,但现在一切都很好。谢谢! @Novocaine88:很高兴它有帮助:)

以上是关于单击 iframe 中的按钮 > 在父窗口中隐藏 div的主要内容,如果未能解决你的问题,请参考以下文章

javascript,jquery,怎么在父窗口触发子窗口(iframe)某按钮的click事件呢?

在iframe窗体内 获取父级的元素;;在父窗口中获取iframe中的元素

从 iframe 打开一个模态窗口到父窗口

放大弹出目标到 iframe 父级

使用 JavaScript 在父窗口中打开 iFrame 表单成功

单击 iframe 按钮关闭父窗口