FB setAutoResize不能在FF上工作

时间:2011-06-02 18:14:24

标签: facebook resize firefox4 autoresize

好的,所以我一直在研究一个改变每个页面高度的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 个答案:

答案 0 :(得分:2)

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

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

FB.Canvas.setSize({ height: $(document.body).outerHeight(true) + 20, width: 760 });

答案 1 :(得分:1)

我把它添加到我的css中它似乎有用(没有用我的autoresize捣碎):

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

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

我认为这是因为firefox以不同于其他浏览器的方式测量身高。

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

答案 2 :(得分:0)

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

如果这影响你就投票了:)

答案 3 :(得分:0)

仅供参考警告!根据Facebook Developer Roadmap FB.Canvas.setAutoResize,我们将于2012年7月5日将其重命名为FB.Canvas.setAutoGrow

从页面:

  

我们已将FB.Canvas.setAutoResize重命名为FB.Canvas.setAutoGrow所以   该方法更准确地表示其功能。   FB.Canvas.setAutoResize将于7月5日停止工作。我们会   在8月1日完全删除该功能。