Facebook页面的iframe中的Fancybox 2页面加载

时间:2013-04-12 20:38:55

标签: php jquery facebook iframe fancybox-2

我正在尝试使用fancybox 2在Facebook页面中创建一个应用程序,其中页面作为iframe加载到fancybox中。它工作得很好,除了IE(谁会知道!)。

在我的fancybox 2中,有一个提交表单并将您发送到另一个页面的按钮。此页面加载到与上一页相同的fancybox窗口中。加载此页面时,未正确调整fancybox的高度,因此我的页面的一半不可见。

我现在要做的是更改fancybox iframe的高度,但我已经停留在获取iframe的实际大小。

这里是我在jancybox iframe中加载的最后一页的javascript代码:

$(document).ready(function() {
    var inner = $('.fancybox-inner');
    console.log(inner);
});

这个console.log给我'null'返回,告诉我这个类在页面中不存在。 我也尝试了以下内容:

parent.$('.fancybox-inner');
parent.$('.fancybox-iframe');
$('.fancybox-iframe');
$.fancybox;
parent.fancybox;

我的fancybox加载:

$(document).ready(function() {
$(".uploadbox").fancybox({
    scrolling : 'no',
    preload   : true,
    type      : 'iframe',
    width     : '623px',
    height    : 'auto',
    autoSize  : true,
    afterLoad : function () { $.fancybox.update(); }, //this does not work
    closeBtn  : false,
        closeClick  : false,
        helpers     : { 
            overlay : {closeClick: false}
        }
    });
});

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

我从未设法解决这个问题。我会向你解释原因:

Facebook页面使用iframe将您的网站显示在他们的网站上。要在fancybox 2中显示另一个页面,您还需要使用iframe。因为iframe中的iframe始终存在问题(跨浏览器等),所以由于双iframe,无法给父窗口提供我的fancybox的高度。由于应用程序必须上线,我决定给它一个静态高度。将来我不会再使用Fancybox 2或任何此类问题,这只是Facebook内部的一大痛苦。

答案 1 :(得分:-1)

你需要parent.jQuery.fancybox.resize();甚至是window.parent.jQuery.fancybox.resize();

如果我没记错的话,他们网站上有关于这个问题的规范。