setAutoGrow()仅适用于应用程序的第一页,有什么问题?

时间:2012-07-14 12:47:33

标签: javascript facebook

在我的facebook应用程序中,我使用setAutoGrow()使页面适合内容并且它可以工作,但仅在第一页上,当我转到另一页面时,它从应用程序启动获得主页面的高度并且不适合新内容。怎么了?

我是这样做的

<body>
<div id="fb-root"></div>
<script>
   window.fbAsyncInit = function() {
      FB.init({
      appId   : '<?php echo $facebook->getAppId(); ?>',
      channelUrl : '//autosn.net/channel.php', 
      cookie  : true, 
      xfbml   : true, 
      oauth: true
   });

   FB.Canvas.setAutoGrow();
   ...

您可以在http://apps.facebook.com/auto_social/上查看此问题,只需转到主页上的任何其他页面,您就可以看到主页下面的内容空间很大。

1 个答案:

答案 0 :(得分:1)

通过对您自己的研究的一点点,你应该能够发现setAutoGrow尊重它的名字, 成长 iframe,但如果实际页面的高度小于上一页的高度, 缩小

一种解决方案是在页面加载时使用高度为600px(最小高度)的setSize,然后使用大约500ms的延迟(setTimeout)调用setAutoGrow。


¹老兄,这个真的是一个已经广泛讨论过的话题......