Facebook的SetSize将适用于Tab安装,但不适用于常规查看

时间:2011-08-17 15:05:08

标签: javascript facebook

我在Facebook的FB.Canvas.setSize()功能方面遇到了严重问题。

我有一些文件包含大量数据,所以很自然地,我想要垂直扩展iFrame的大小。这是我使用的:

<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript" language="javascript">
FB.init({
    appId  : '###',
    status : true,
    cookie : true // enable cookies to allow the server to access the session
});
FB.Canvas.setSize({ height: 2500 });

通过粉丝页面上的Tab安装显示其中一个文件时,此工作非常棒。但是,只要转到应用程序查看它,就不会发生调整大小。

我是否缺少关于Tab与Not Tab安装的内容?

其他细节: 我在应用程序设置中将Auto-Resize设置为true,因为这是老板想要它的方式(没有滚动条)。对于grins,我注释掉了setSize并在这些页面的代码中手动添加了FB.Canvas.setAutoResize(false),当不在选项卡安装中时,滚动条不显示。就像当我没有安装标签时,Javascript代码没有被激活。

感谢任何建议。

谢谢! 莉莎

编辑:终于终于让这个工作了。 @ matt-nathanson让我走上正轨,但最终的解决方案比他的建议更深入。这就是我最终做的事情:

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    window.fbAsyncInit = function() {
        FB.init({
        appId: '###', 
        status: true,
        cookie: true,
        oauth: true
    });
};
(function() {
    var e = document.createElement('script');
    e.async = true;
    e.src = document.location.protocol +
        '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
}());

window.onload = function () {
    FB.Canvas.setSize({ height: 2500 });
}
</script>

解决方案来自:http://www.masteringapi.com/tutorials/facebook-javascript-sdk-best-practices/58/

1 个答案:

答案 0 :(得分:1)

给这个旋转......

首先设置

body {height: 2500px;}

然后坚持下去:

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