基于iframe的Facebook应用程序获得不需要的窗口大小的滚动条

时间:2010-11-11 00:35:44

标签: facebook iframe scrollbar facebook-iframe

我有这个Facebook应用程序资料页面:

http://www.facebook.com/developers/editapp.php?app_id=122313254494566#!/apps/application.php?id=122313254494566

与我的基于iframe的Facebook应用程序Gem Spinner相关联:

http://apps.facebook.com/gemspinner/

我所看到的是,根据窗口高度,我的iframed内容将以固定高度和滚动条显示,而不是仅仅向下流动页面(并根据需要从页面底部开始) ,正如我想的那样。当我缩短窗口时,会出现滚动条;当我让窗户更高时,滚动条消失。我的理解是,它是Facebook确定这个高度并添加滚动条(但也许我错了)。在任何情况下,我都非常感谢您理解这一点,并在必要时让我的内容流向页面。

1 个答案:

答案 0 :(得分:1)

好吧,我做了一些事情让它发挥作用。

(1)在我的应用程序设置中,在Facebook Integration选项卡下,在IFrame大小下,我选择了自动调整大小而不是显示滚动条。

(2)我加载了Facebook connect API(参见下面的代码)。

(3)我在两个不同的地方调用了FB.Canvas.setAutoResize(100)。我称它为两次,因为我不清楚哪个位置会使它更快地生效。在早期测试中,我看到iframe高度开始短(可能是800像素高),然后增长到我的内容的全尺寸(可能1100像素高)。在随后的测试中,iframe会立即调整大小,所以我看不到这两种状态。所以我不清楚这里的时机/机制。

  <body>
    <div id="fb-root">
    </div>
    <script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script>
    <script type="text/javascript">
      FB.init({
        appId  : 'your app id here',
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : false  // parse XFBML
      });
      FB.Canvas.setAutoResize( 100 );
    </script>

    ... the rest of the page body goes here ...

    <script type="text/javascript">
      FB.Canvas.setAutoResize( 100 );
    </script>
  </body>