Facebook应用程序高度问题

时间:2011-12-01 09:35:05

标签: asp.net facebook facebook-c#-sdk facebook-iframe

在我的facebook iframe应用程序中,我的主页有点长(大约1500px)但次要页面的高度较小。

我看到我的页脚和二级页面中的facebook页脚之间有很多空白区域。

我检查了iframe源并发现height属性设置正确,但样式标记内还有另一个高度值,它保留了主页高度。

<iframe class="canvas_iframe_util noresize" frameborder="0" scrolling="no" id="iframe_canvas" name="iframe_canvas" src='javascript:""' height="600px" style="height: 1566px; overflow-y: hidden; "></iframe>

下面是我用来调整框架大小的代码(在母版页中)

<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    FB.init({
        appId: 'my app',
        status: true, // check login status
        cookie: true, // enable cookies to allow the server to access the session
        xfbml: true// parse XFBML
    });

    FB.Canvas.setAutoResize(7);

 </script>

我的辅助页面大小是动态的,所以我不能使用固定的高度。 我非常感谢您在我的辅助页面上获得额外空白区域的任何帮助。

由于

2 个答案:

答案 0 :(得分:3)

前几天我做了一个Facebook Canvas应用程序,我编写了这个小代码来处理高度问题。

<script>
    FB.Canvas.setSize({ height: document.getElementById('wrapper').offsetHeight });
</script>

当然这段代码需要<div id="wrapper"></div>来包装整个页面。 你必须确保在你开始之前已经加载了DOM中的所有东西。这就是为什么我把它放在</body>之前。但是,对于高度不明确的图像,有时会出现一些问题。因此,要么指定所有图像的高度,要么可以在jQuery和document.ready()的帮助下触发它。

答案 1 :(得分:1)

您可以/应该切换到使用FB.Canvas.setAutoGrow(),因为FB.Canvas.setAutoResize()很快就会被弃用。

然后将应用设置中的canvas height选项设置为:可设置(默认值:800px)

在您的应用中,您可以使用FB.Canvas.setAutoGrow()而无需任何参数。我知道这基本上就是你已经在做的事情,但根据我的经验,这对我很有帮助。这也解决了在初始页面加载后页面高度发生变化时的任何问题。