在使用Canvas.setSize设置之后更改Facebook画布大小

时间:2011-11-07 22:38:36

标签: facebook canvas sdk

这不是滚动条问题。事情就是这样:

  1. 您加载Facebook画布应用并执行 FB.Canvas.setSize({height:900}); (工作)

    < / LI>
  2. 您转到应用的另一部分(某个链接),然后执行 FB.Canvas.setSize({height:1300}); < / p>

  3. 第二步不起作用。应用iframe保持在900px高度。

  4. 我需要的是在设置之后动态更改画布高度。根据Facebook文档,这应该工作。它们没有指定在设置后是否可以更改画布高度。

    我在页面选项卡上尝试了相同的方法并且它可以工作,我可以使用setSize()正确调整选项卡的高度,但是,看起来画布页面的行为方式不同(?)。

    这是我正在使用的代码,在打开 body 标记之后:

    <div id="fb-root"></div>
    <script type="text/javascript">
    <!--
    window.fbAsyncInit = function() {
        FB.init({appId: "XXXXXXXXXXXXXXXXXXXXX",
                           status: true,
                           cookie: true,
                           xfbml: true});       
    };
    (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);
    }());   
    window.fbAsyncInit = function() {
        FB.Canvas.setSize({height:1300});
    }
    //-->
    </script>
    

    设计师使用不同的高度创建了一个Canvas应用程序,到目前为止,实现起来很痛苦。

1 个答案:

答案 0 :(得分:1)

你在两个不同的地方为window.fbAsyncInit分配了不同的东西。您应该摆脱第二个分配,并在FB.Canvas.setSize来电之后将FB.init来电转移到右侧(或替换FB.init来电,因为如果您不需要它,则不需要它只使用SDK进行大小调整;如果你正在使用它进行身份验证,显然要保留它。)