0

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

在我的fancybox 2 中,有一个按钮可以提交表单并将您发送到另一个页面。此页面与上一页加载在同一个花式框窗口中。这个页面加载的时候,fancybox的高度没有调整好,所以我的页面有一半是不可见的。

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

这是我在fancybox 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;

我的幻想箱加载:

$(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}
        }
    });
});

任何帮助将不胜感激!

4

2 回答 2

1

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

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

于 2013-04-22T11:09:52.157 回答
-1

您将需要 parent.jQuery.fancybox.resize(); 甚至 window.parent.jQuery.fancybox.resize();

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

于 2013-04-12T20:44:40.517 回答