Facebook Canvas api SetSize完全破碎

Facebook Canvas APIs to SetSize Completely Broken

本文关键字:破碎 SetSize Canvas api Facebook      更新时间:2023-09-26

我目前正试图解决一个问题,使我的facebook应用程序适当调整大小,因为它目前在底部之前被切断(Aka你不能滚动到我的托管应用程序的底部使用滚动条)。我花了很多时间试图弄清楚这个问题,所以任何帮助都会很感激。现在我打电话给fbi。canvas。setSize({高度:2000});返回true但是什么都没有发生,我仍然无法到达我的应用程序的底部。我甚至尝试调用一个按钮点击,但我仍然得到相同的结果。

Update:在尝试了一些想法之后,如果我将Facebook SDK同步加载到我的主页并在那里调用setSize,我就能够让这个工作。然而,我仍然没有任何运气,当它加载异步或同步到一个不同的页面,我的画布导航到?仅仅在我的主页上设置大小是行不通的,因为每个页面都有不同的大小。有人见过这样的问题吗?

代码如下:

window.fbAsyncInit = function() {
  FB.init({
   appId      : 'XXXXXXXXX', // App ID
   cookie     : true, // enable cookies to allow the server to access the session
   oauth      : true, // enable OAuth 2.0
   xfbml      : false  // parse XFBML
  });
  FB.Canvas.setSize({ width: $(document).width(), height: $(document).height() });
  setFriends();
};
(function(d){
  var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
  js = d.createElement('script'); js.id = id; js.async = true;
  js.src = "//connect.facebook.net/en_US/all.js";
  d.getElementsByTagName('head')[0].appendChild(js);
}(document));

$(document).ready(function() {
  if (FB && FB.Canvas) {
    FB.Canvas.setSize({ width: $(document).width(), height: $(document).height() });
  }
});

我刚刚在为客户端创建应用程序时遇到了类似的问题。我无法让滚动条放下来。最后这些消失了,然后有同样的问题,因为它切断了我的应用程序的底部。这是我找到它的论坛帖子的链接。Facebook只改了一点代码:

不再是FB.Canvas.setSize(),而是FB.Canvas.setAutoGrow()

希望有帮助。

http://facebook.stackoverflow.com/questions/8559679/remove-horizontal-and-vertical-scrollbar-from-facebook-apps

我通常调用setSize没有任何参数,这似乎对我工作。

window.fbAsyncInit = function() {
FB.Canvas.setSize();
}

你有你的画布高度设置为高级应用程序设置?我发现使用"fluid"会产生一些问题,所以不得不将其设置为"Settable(默认值:800px)"

我真的希望明确地设置大小,因为它不会改变页面加载之外。我不想让Facebook每隔一段时间就检查大小大小,并以此为基础更改大小,从而带来额外的性能成本。

好电话。这个建议来自http://www.hyperarts.com/blog/facebook-iframe-apps-getting-rid-of-scrollbars/

为了减少你的用户CPU周期,你也可以使用setSize函数。

FB.Canvas.setSize

一旦你加载了Javascript SDK,你可以使用FB.Canvas.setSize()来摆脱那些滚动条。将以下代码放在索引页的结束HEAD标签之前:

<script type="text/javascript">
window.fbAsyncInit = function() {
FB.Canvas.setAutoGrow();
}
// Do things that will sometimes call sizeChangeCallback()
function sizeChangeCallback() {
FB.Canvas.setSize({ width: 520, height: 1400 });
}
</script>

这告诉Facebook在页面加载后调整你的iFrame大小,每当你的内容大小发生变化时再次调整。

同样,这些函数只会在你设置画布高度为" Settable "时起作用