关闭iframe内的Facebox

Close Facebox inside iframe

本文关键字:Facebox 内的 iframe 关闭      更新时间:2023-09-26

我正在使用这个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>

我是这么做的:

我的页面有一个DIV内的IFRAME, DIV是什么facebox应该fadeInfadeOutIFRAME的SRC是一个页面,上面有一个链接,看起来像这样:

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

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

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

。尚未在跨浏览器或生产环境中进行测试。我花了几个小时在谷歌上搜索这个问题,并尝试了各种方法,从将单引号更改为双引号,document-dot-this和parent-dot-that, window.frames['whatever'],以及这个一行函数。如果您试图从调用到IFRAME的页面触发函数,则必须确保使用parent.close_facebox()。希望对你有帮助。

顺便说一句,参见facebox.js版本1.2的第47行和第49行——这个解决方案就在.js文件本身注释掉的"用法"部分。我复制了&将第49行粘贴到我的函数中,除了取消注释外没有改变任何东西:)

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>');
});

你需要同时使用父类的jQuery对象和传递父类的文档作为jQuery参数:

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