我正在尝试使用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}
}
});
});
非常感谢任何帮助!
答案 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();
如果我没记错的话,他们网站上有关于这个问题的规范。