【问题标题】:Change Facebook canvas size after its already been set with Canvas.setSize使用 Canvas.setSize 设置 Facebook 画布大小后更改其大小
【发布时间】:2011-11-07 22:38:35
【问题描述】:

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

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

  2. 您移动到应用程序的另一个部分(一些链接),然后执行 FB.Canvas.setSize({height:1300});

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

我需要的是在设置后动态更改画布高度。根据 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 应用程序,到目前为止,实施起来很痛苦。

【问题讨论】:

    标签: facebook canvas sdk


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多