Facebook 时间轴页面应用程序高度停留在800px

Facebook 时间轴页面应用程序高度停留在800px,facebook,height,facebook-timeline,Facebook,Height,Facebook Timeline,我正在为一个Facebook页面开发一个应用程序,该页面采用“时间线”布局,我希望应用程序的高度能够随着内容的变化而变化,但应用程序的高度固定在800px 当前的应用程序设置显示高度设置为“流体”,但我也尝试将高度固定为随机值,但没有看到任何变化 如何使我的应用程序的高度与它的内容相称?谢谢你的回复 更新: 所以把这个附加到我的身体标签上是有效的 <body onload="FB.Canvas.setSize({width: 810, height: 910})"> <div

我正在为一个Facebook页面开发一个应用程序,该页面采用“时间线”布局,我希望应用程序的高度能够随着内容的变化而变化,但应用程序的高度固定在800px

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

如何使我的应用程序的高度与它的内容相称?谢谢你的回复

更新: 所以把这个附加到我的身体标签上是有效的

<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>

(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js#xfml=1&appId=YOURAPPID;
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
} ());

但是我完全不知道它为什么会起作用,所以我想我会把我的问题改为“上面的代码是做什么的?”这样我就可以真正理解下次要采取什么步骤了。我现在就把这个问题作为一个答案来结束这个问题。

这是一个正确的设置方式,我只是盯着它看了一会儿,并且阅读了太多的文档。将以下内容放在fb根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));

嵌入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>

window.fbAsyninit=函数(){
FB.Canvas.setAutoResize(100);
}
函数sizeChangeCallback(){
FB.Canvas.setSize({宽度:810,高度:1300});
}
FB.init({
appId:'您的应用程序ID',
状态:正确,
曲奇:是的,
xfbml:对
});

Ashish的回答对我来说很有效

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


body{overflow:hidden;}

setAutoResize
如前所述不推荐使用。您应该使用
setAutoGrow
。这如何与iFramed应用程序配合使用?我遇到了跨站点脚本问题,使其无法工作。有什么想法吗?谢谢这应该适用于画布应用程序或facebook上的页面选项卡,这就是我现在使用它的方式。您遇到的跨站点脚本问题是什么?哦,尽管我的操作很糟糕,但它仍然是一个跨站点脚本问题。现在一切都好了,很好用,谢谢!哦,那个“channelUrl”是什么?它是一个链接到facebook js sdk的页面,用于解决跨域通信问题。看看这一页,它会更详细地介绍它。