关闭iframe内的Facebox

时间:2011-07-17 06:09:00

标签: javascript jquery

我正在使用这个mod:

http://lnx.shortcutto701.com/2010/05/21/using-iframe-with-facebox-jquery-plugin/

我的问题是,我如何制作一个iframe内的按钮来关闭facebox。我一直在尝试各种各样的:

<button style="height: 50px;" onclick="window.parent.$.trigger('close.facebox')"><span class="button"><span>Cancel</span></span></button>

3 个答案:

答案 0 :(得分:2)

这对我有用:

我的页面在DIV中有IFRAME,DIV是facebox应该fadeInfadeOut的内容。 IFRAME的SRC是一个页面,上面有一个链接,如下所示:

<a href="#" onclick="parent.close_facebox()">close this facebox modal</a>

在包含DIV和HEAD的页面的IFRAME(不是调用IFRAME的页面)中,我有一个看起来像close_facebox()的JavaScript函数这样:

function close_facebox() { jQuery(document).trigger('close.facebox'); }

这就是全部。尚未经过跨浏览器测试或尚未投入测试。我花了几个小时谷歌搜索这个问题并尝试从单引号改为双引号,document-dot-this和parent-dot-that,window.frames['whatever']以及这个单行函数。如果您尝试从调用IFRAME的页面触发该功能,则必须确保使用parent.close_facebox()。希望这会有所帮助。

BTW,请参阅facebox.js ver 1.2的第47和49行 - 这个解决方案就在.js文件本身的注释掉的“用法”部分中。我复制了&amp;将第49行粘贴到我的函数中,除了取消评论之外没有改变任何东西:)

答案 1 :(得分:1)

self.close()

$('.open').click(function(){
    facebox = window.open("",
    "facebox","status=1,width=350,height=150");
    facebox.document.write('<h1>The Popup Window</h1><p><a onclick="self.close();"     href="#">close</a></p>');
});

答案 2 :(得分:0)

您需要同时使用父级的jQuery对象并将父级文档作为jQuery参数传递:

parent.$(parent.document).trigger('close.facebox');