2

我的问题是我的 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>

这是应用程序设置的屏幕截图:

在此处输入图像描述

4

4 回答 4

1

您不应该同时需要调整大小功能。只需FB.Canvas.setAutoGrow()在您通话后的某个时间拨打电话即可FB.init()

于 2012-12-18T15:43:08.557 回答
1

如果您的站点不需要多次调整大小,则应仅使用 FB.Canvas.SetSize(),以节省 CPU 功耗;)

于 2012-12-18T15:59:45.783 回答
1

我遇到了 AutoGrow 完全按照它在罐子上所说的问题。它扩大页面(提示:它不会缩小它)。我们最终得到的是:

FB.init({
    appId : 'appid',
    status : true,
    cookie : true
});
FB.Canvas.setSize({height:600});
setTimeout("FB.Canvas.setAutoGrow()",500);
于 2013-02-01T11:57:14.590 回答
1

我可以解决这个问题,这是我想象的变化:

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

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

这是有效的代码:

<!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>
于 2013-02-03T19:04:56.003 回答