5

我正在为具有“时间线”布局的 Facebook 页面开发应用程序,我希望应用程序的高度随内容缩放,但应用程序的高度固定为 800 像素。

当前的应用程序设置显示高度设置为“流体”,但我也尝试将高度固定为随机值并且没有看到任何变化。

如何让我的应用程序的高度扩展到它的内容?感谢您的任何回复。

更新:所以把它附加到我的身体标签上是可行的。

<body onload="FB.Canvas.setSize({width: 810, height: 910})">
<div id="fb-root"></div>
<script>
(function () {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1&appId=YOURAPPID;
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
} ());
</script>

但我对它为什么起作用一无所知,所以我想我会把我的问题改成“上面的代码是做什么的?” 所以我实际上可以理解下次要采取的步骤。不过,我现在将其作为答案来结束这个问题。

4

3 回答 3

8

这是设置的正确方法,我只需要盯着它看一会儿,并以太多次阅读文档的方式。将以下内容放在 fb-root div 下面就像一个冠军。

window.fbAsyncInit = function () {
    FB.init({
        appId: 'YOURAPPID', // App ID
        channelUrl: '/channel.html', // Channel File
        status: true, // check login status
        cookie: true, // enable cookies to allow the server to access the session
        xfbml: true  // parse XFBML
    });
    FB.Canvas.setAutoGrow(); //Resizes the iframe to fit content
};
// Load the SDK Asynchronously
(function (d) {
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) { return; }
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js, ref);
} (document));
于 2012-03-09T15:52:41.427 回答
0

嵌入 javascript 代码以增加 iframe 的高度

<script type="text/javascript">
    window.fbAsyncInit = function() {
    FB.Canvas.setAutoResize( 100 );
    }

    function sizeChangeCallback() {
    FB.Canvas.setSize({ width: 810, height:1300 });
    }
    </script>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : 'YOUR APP ID',
status : true,
cookie : true,
xfbml : true
});
</script>
于 2012-03-14T11:38:09.057 回答
0

Ashish 的回应对我来说效果很好。

我还包括了一个正文样式,以防止滚动条在页面加载时出现一秒钟:

身体{溢出:隐藏;}

于 2012-03-29T18:50:05.547 回答