在我的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>
我的辅助页面大小是动态的,所以我不能使用固定的高度。 我非常感谢您在我的辅助页面上获得额外空白区域的任何帮助。
由于
答案 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()
而无需任何参数。我知道这基本上就是你已经在做的事情,但根据我的经验,这对我很有帮助。这也解决了在初始页面加载后页面高度发生变化时的任何问题。