1

我正在 facebook 上开发一个应用程序。从昨天开始,使用以下代码段调整大小工作正常: CSS:

body, html { overflow:hidden; width:810px;margin:0; padding:0; border:0; }

在结束 body 标签之前:

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript" charset="utf-8">
FB.Canvas.setAutoGrow(true,100);
</script>

在 Facebook 上,我选择了固定的高度和宽度,但由于自动增长,这并不重要。

由于今天它刚刚被切断,我尝试了流体设置,但它没有改变任何东西。我可以删除 body 和 html 的 css 规则,但随后添加了滚动条。

简而言之:调整大小不再起作用。

重要的是要知道(也许)应用程序动态调整大小(通过 JS)而无需重新加载页面。

代码根本没有改变,所以我担心 Facebook 可能改变了什么?

此外,我还尝试了这个 js 片段,但没有任何效果(但它还是一样):

<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function () {
window.setTimeout(function () {
    FB.Canvas.setAutoGrow()
}, 250)
};
(function () {
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e)
}());
</script>

更新:

这个问题得到了正确的回答,但还有一件事需要注意:overflow:hidden仅适用于body,它在我html从规则中删除后起作用 - 与旧画布一起使用,至少我以前使用过它。

同样将代码放在标题中也没有改变任何东西,并且与将其放在正文区域的开头不同。

4

1 回答 1

1

试试这个

<div id="fb-root"></div>
    <script src="https://connect.facebook.net/en_US/all.js"></script>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId : 'YOUR APP ID', //Your facebook APP here
          cookie : true, // enable cookies to allow the server to access the session
        });
      }

      window.onload = function() {
        FB.Canvas.setAutoGrow(91);
      }
    </script> 
于 2012-04-05T08:32:30.030 回答