1

好的,所以我一直在开发一个改变每一页高度的 FB 应用程序。我,显然在我的应用程序布局中使用了 setAutoResize 函数,并且我有以下内容:

window.fbAsyncInit = function() {
    FB.init({appId: '###', status: true, cookie: true, xfbml: true});
    FB.Canvas.setAutoResize();        
};

它在 IE、Safari 和 Chrome 中运行良好,但在 FF4 中却不行。我也用过:

window.setTimeout(function() {
    FB.Canvas.setSize({height: $('body').height()});                
}, 1000);

但也没有运气。有没有人经历过这种情况?tnx 提前。标记

4

4 回答 4

2

已经提供了答案,但我不妨发布我对问题的解决方案。在 Firefox 中,即使您的页面适合,滚动条仍然是 iFrame 的一部分。他们只是没有蓝色卷轴。这增加了大约 20 像素。

我认为您的 jQuery 解决方案不会起作用,因为 height() 没有考虑边距和填充。也许试试这个。

FB.Canvas.setSize({ height: $(document.body).outerHeight(true) + 20, width: 760 });
于 2011-10-31T02:39:58.040 回答
1

我将此添加到我的 css 中,它似乎有效(不必与我的自动调整大小混淆):

body {
    margin-top: -20px;
    padding-top: 20px;
}

如果您已经在身体顶部添加了填充,则可能需要向其添加 20px。

我认为这是因为 Firefox 测量身体高度的方式与其他浏览器不同。

在 ff8、chrome16 和 ie9 中测试,没有负面影响。

于 2012-01-17T19:33:28.680 回答
0

这听起来可能是一个错误?查看: http ://bugs.developers.facebook.net/show_bug.cgi?id=10889

如果这影响您投票:)

于 2011-07-20T05:07:36.447 回答
0

仅供参考!根据Facebook 开发者路线图 FB.Canvas.setAutoResize将更名为FB.Canvas.setAutoGrow2012 年 7 月 5 日。

从页面:

We have renamed FB.Canvas.setAutoResize to FB.Canvas.setAutoGrow so that the method more accurately represents its function. FB.Canvas.setAutoResize will stop working on July 5th. We will completely delete the function on August 1st.

于 2012-05-02T23:47:11.610 回答