Facebook应用程序不会调整大小

时间:2012-12-18 14:57:01

标签: facebook facebook-apps

我遇到的问题是我的Facebook应用页面没有调整高度。我知道有很多人有类似问题的问题。但我已经尝试设置FB.Canvas.setSize(),FB.Canvas.setAutoGrow()和一个“应该”每2秒调整一次画布页面的功能,但没有任何作用。

修改

我现在尝试使用 工作的最小代码(就像我理解的那样),但事实并非如此。

以下是代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Test</title>
        <style type="text/css">body { overflow: hidden; }</style>
    </head>
    <body>
        <div id="fb-root"></div>
        <script type="text/javascript" src="https://connect.facebook.net/en_US/all.js"></script> 
        <script type="text/javascript">
            window.fbAsyncInit = function() {
                FB.init({
                    appId: "xxxxxxxxxxxx",
                    cookie: true
                });
            };
            window.onload = function() {
                FB.Canvas.setAutoGrow(100);
            }
        </script>
        <div style="height: 1000px; width: 20px; background-color: #006;"></div>
        <div>End</div>
    </body>
</html>

以下是应用设置的屏幕截图:

enter image description here

4 个答案:

答案 0 :(得分:1)

您不应该同时需要两个调整大小的功能。只需在FB.Canvas.setAutoGrow()来电后的某个时刻拨打FB.init()

答案 1 :(得分:1)

如果您的站点不需要多次调整大小,则应该只使用FB.Canvas.SetSize()来节省CPU-Power;)

答案 2 :(得分:1)

我遇到的问题是,AutoGrow完全按照它在锡上所说的那样做。它会增长页面(提示:它不会缩小它)。我们最终得到的是:

FB.init({
    appId : 'appid',
    status : true,
    cookie : true
});
FB.Canvas.setSize({height:600});
setTimeout("FB.Canvas.setAutoGrow()",500);

答案 3 :(得分:1)

我可以解决这个问题,这是我所做的改变:

  • 删除加载facebook lib的脚本标记。
  • 添加JS代码以加载facebook lib。
  • 将此代码移至起始正文标记的正下方。

我不知道是否所有这些步骤都是必要的。

以下是有效的代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Test</title>
        <style type="text/css">body { overflow: hidden; }</style>
    </head>
    <body>
        <div id="fb-root"></div>
        <script>
            window.fbAsyncInit = function() {
                FB.init({
                    appId: "xxxxxxx",
                    status : true,
                    cookie: true
                });
                FB.Canvas.setAutoGrow();
            };

            (function(d, debug){
                var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
                if (d.getElementById(id)) {return;}
                js = d.createElement('script'); js.id = id; js.async = true;
                js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
                ref.parentNode.insertBefore(js, ref);
            }(document, /*debug*/ true));
        </script>
        <!-- page content -->
    </body>
</html>